undo works (if exposed globally)