add cache for public