added client side compilation