Added caching and GZip compression