added the ability to define a ProviderIdentifierGenerator to automatically assign identifiers
refactored the way AccountDomainWrapper gets instantiated