integrate with client side