Moves are now individual static methods. This allows their effects to be
implemented independently