Refactor domain model for a more manageable hierarchy