Add error detection
Add caching and timed requests