added cache protocol