timer tick add undo and redo