draft of SnapshotStore
add EventStorePlugin trait
handle error-prone places