Add cache functions