sample undo program