client side interface