Add BaseEvent base class, change update to use try: save() with force_insert