move logic is now in the map so that it can check that the move is valid.