buffer cache functions design