public boolean checkValidMove(int endRow, int endColumn, BoardSquare[][] squares){
		int verticalMovement = endRow - getRow();
		int horizontalMovement = endColumn - getColumn();
		int player = squares[getRow()][getColumn()].getPlayer();
		
		if(wrongDirection(verticalMovement, player)){ //checks for if the movement of the piece is in the backwords direction
			return false;
		}
		
		if(Math.abs(horizontalMovement) > 1 || Math.abs(verticalMovement) > 2){ //if piece moves more than 1 horizontally or 2 vertically, must be invalid
			return false;
		}
		
		if(Math.abs(horizontalMovement) == 1){ //capturing logic (must be capturing if it is moving 1 unit horizontally
			return checkCapture(squares, endRow, endColumn, verticalMovement, player);
		}
		
		if(checkVerticalDestination(squares, endRow, endColumn) == true){ // checks if destination spot is empty (can't capture moving forward)
			if(/*isFirstMove() == true*/getNumOfMoves() == 0 && Math.abs(verticalMovement) == 2){ //can move 2 spots on first turn, can't otherwise
				return checkMoveTwoSpots(squares, endRow);
				
			}
			else if (Math.abs(verticalMovement) == 1) { //normal case
//				firstMove = false; //setting this to false whenever function returns true, since it means at least one move is done
				return true;
			}
			else{//leftover case is when vertMovement is 2 and its not first move
				return false;
			}
		}
		else{ //another piece in destination spot
			return false;
		}
	}