First client side implementation