@Override
	public void execute() {
		if (this.from.distanceBetweenFile(this.to) == 2) { // King moves right (file difference is positive)
			this.rookFrom = board.getField('h', this.from.rank);
			this.rookTo = board.getField('e', this.from.rank); // Rook moves left
		} else {
			this.rookFrom = board.getField('a', this.from.rank);
			this.rookTo = board.getField('c', this.from.rank); // Rook moves right
		}
		
		this.rook = this.rookFrom.getPiece();
		
		this.from.removePiece(this.piece);
		this.to.addPiece(this.piece);
		this.rookFrom.removePiece(this.rook);
		this.rookTo.addPiece(this.rook);
		
		this.piece.increaseMoveCount();
		this.rook.increaseMoveCount();
	}