Revised
1. Timeout and error handling of caching
2. Allowing query parameter to be saved as path