cache functions added