cleanup
extract method to find aggregateid
use methods for contract, to allow abstraction later
delegate the actual work to the unit of work