I think we can avoid part of this if we pass the ldap entry to the constructor and we stop inheriting from Domain.