add cache interface