Refactored domain model away from customer -> party