From Actors and Concurrent Objects to Agent-Oriented Programming in simpAL