Correcting an overly ambitious undo
get() and set() methods are really big overheads

        TODO: fix the stuff that says TODO in those methods