refactored moves to classes