Reconciling Different Theories of Learning with an Agent-based Model of Procedural Learning