Dual Direction Moving

Change a lot to make sure that the agent can move to two direction