Refactor all of the handling of moves into its own class as static methods. Update Unit tests to reflect it