added cache and gzip