undo+redo still need a little work, also need update timer