first draft at full eventsourced TopicRepository