added cache and example model