Added new movement code - needs to be fine tuned