send result first then cache it