add client side cache