undo implemented for every shape (not working with all)