public void undoPerform(Position origin, Position destination, Piece capturedPiece) { Piece p = board.RemovePiece(destination); p.MoveDecrement(); if (capturedPiece != null) { board.SetPiece(capturedPiece, destination); capturedPieces.Remove(capturedPiece); } board.SetPiece(p, origin); }