gameplay: re-factor to only perform game moves by executing the GameMove.perform() method and moved all move logic there