class AccessTokenManagerImpl implements AccessTokenManager {

    @Override
    public Mono<AccessToken> grantAccessToken(Username username) {
        Preconditions.checkNotNull(username);
        AccessToken accessToken = AccessToken.generate();

        return accessTokenRepository.addToken(username, accessToken)
            .thenReturn(accessToken);
    }

    @Inject  AccessTokenManagerImpl(AccessTokenRepository accessTokenRepository);

}