added cache support