Removed IMove and implemented all movement code in its own class.