- context bounds instead of specifying implicits where possible
- AggregateFactory -> AggregateRootCompanion
- create -> seed