add experimental cache interceptor implementation