optimised move method for agents