fleshed out client side