fixed movement logic