add cache functions