client side of l1j