improved move behaviour