class BlockchainEvents {

    ListenerRegistration addAccountCreationListener(final EventListener<Void> listener) {
        checkNotNull(listener, "listener");

        final kin.base.requests.EventListener<TransactionResponse> responseListener = new kin.base.requests.EventListener<TransactionResponse>() {
            private boolean eventOccurred = false;

            @Override
            public void onEvent(TransactionResponse transactionResponse) {
                //account creation is one time operation, fire event only once
                if (!eventOccurred) {
                    eventOccurred = true;
                    listener.onEvent(null);
                }
            }
        };

        transactionsStream.addListener(responseListener);

        return new ListenerRegistration(new Runnable() {
            @Override
            public void run() {
                transactionsStream.removeListener(responseListener);
            }
        });
    }

      BlockchainEvents(Server server, String accountId);

}