Agent Programming in 3APL