added undo/redo functionality and more icons.