Add client-side cache support