def client():
    bwrap = blockchainWrapper.BlockchainWrapper()

    # generate account
    accounts_gen = ["Account"]
    accounts = [
        adBank.User.factory(account, bwrap) for account in accounts_gen
    ]

    # show accounts
    for account in accounts:
        account.show()

    # blockchain auction init
    my_auction = auctionEngine.PodAuction()
    auction_vec = [my_auction]

    # ETL pipeline
    router = Router.AdXRTBPipe(auction_vec)
    my_auction.setRouter(router)  # @fix reciproc tricky init

    # create event
    event = router.readCSVEventFile()
    eventType = 'publisherEvent'
    eventSource = 'arplayer'
    event = Event.Event(event, eventType, eventSource)

    # run auction
    router.runEvent(event)

    # after event is run, recheck account balance
    for account in accounts:
        account.getBalance(bwrap)

    # show some inventory analalytics
    inventory = Inventory.InventoryStore()
    inventory.view()
    inventory.top()