now with client side libraries