public int move(String input, Owner o) {
		XY[] arrXY = XY.getXYfromInput(input);
		if (arrXY == null) {
			return INCORRECT_INPUT;
		}
		XY from = arrXY[0];
		XY to = arrXY[1];
		int checkMove = INCORRECT_MOVE;
		Figure figFrom = board.getFigure(from);
		
		if (figFrom != null && figFrom.isEnemy(o) == false) {
			checkMove = figFrom.checkMove(board, to);
			
			if (checkMove >= CORRECT_MOVE) {
				if (figFrom.getRank().getIndex().equals("p")) { // pawn move
					board.resetNumberOfFiftyRule();
				}
				if (checkMove == CORRECT_MOVE) {
					if (board.getFigure(to) != null) {
						board.remove(to);
						board.resetNumberOfFiftyRule();
					}
					board.move(figFrom, to);
				} else if (checkMove == CASTLING) {
					board.castling(figFrom, to);
				} else if (checkMove == EN_PASSANT) {
					board.enPassant(figFrom);
				}
			}
			return checkMove;
			
		} else {
			return DONT_TOUCH_NOT_YOUR_FIGURE_TO_MOVE;
		}
		
	}