added client side tap