public int check(Figure figFrom, XY to) {
		Owner w = Owner.WHITE;
		Owner b = Owner.BLACK;
		Owner o = figFrom.getRank().getOwner();
		XY origXY = new XY(figFrom.getXY());
		int result = CORRECT_MOVE;
		moveWithoutTrace(figFrom, to);
		
		if (to.equals(xyOfKings.get(o))) {
			boolean isKingsNotOnNeighborSquares = Math.abs(xyOfKings.get(w).getX() - xyOfKings.get(b).getX()) > 1 && Math.abs(xyOfKings.get(w).getY() - xyOfKings.get(b).getY()) > 1;
			if (isKingsNotOnNeighborSquares == false) {
				result = INCORRECT_MOVE;
			} else {
				result = checkFromKingsPointOfView(o);
			}
		} else {
			result = checkFromKingsPointOfView(o);
		}
		
		moveWithoutTrace(figFrom, origXY);
		return result;
		
	}