A library for managing undo and redo commands