abstracted aggregate root

plz review