added client side stuff