add cache for contents