Implement request caching, change service API