move over to runtimeType and mirrors
major refac, split CQRS part from EventStore and simplify unit test