Added directional movement and required sub-functionalities.