first buffer cache implementation