Aggregate Root Design Pattern