class BlockchainEvents {

    ListenerRegistration addBalanceListener(@NonNull final EventListener<Balance> listener) {
        checkNotNull(listener, "listener");

        final kin.base.requests.EventListener<TransactionResponse> responseListener = new kin.base.requests.EventListener<TransactionResponse>() {
            @Override
            public void onEvent(TransactionResponse transactionResponse) {
                extractBalanceChangeFromTransaction(transactionResponse, listener);
            }
        };

        transactionsStream.addListener(responseListener);

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

      BlockchainEvents(Server server, String accountId);

}