isMoveValid now works properly for the pawn, refactored some of the controller's code related to pawn move validation