public Qualifications CreateQualificationsFor(Person person) { if (person.Qualifications != null) throw new InvalidOperationException("Person already has a Qualifications object attached"); var qual = new Qualifications { Person = person, }; person.Qualifications = qual; person.Validate(); return qual; }