added onRestore event
added DrawingElement.duplicate()