class PersonalUserManager implements EnterpriseUserManager {

    @Override
    public User newUser( String username, byte[] initialPassword, boolean requirePasswordChange )
            throws IOException, InvalidArgumentsException, AuthorizationViolationException
    {
        try
        {
            assertUserManager();
            User user = userManager.newUser( username, initialPassword, requirePasswordChange );
            securityLog.info( subject, "created user `%s`%s", username,
                    requirePasswordChange ? ", with password change required" : "" );
            return user;
        }
        catch ( AuthorizationViolationException | IOException | InvalidArgumentsException e )
        {
            securityLog.error( subject, "tried to create user `%s`: %s", username, e.getMessage() );
            throw e;
        }
    }

      PersonalUserManager( EnterpriseUserManager userManager, AuthSubject subject, SecurityLog securityLog, boolean isUserManager );

}