update style
close #2: add undo, redo