Add compression and caching