refactor: move specific event creation code to a new class
feat: add export #1037
merge