Add caching

Pulled out the repeated use of request and added a cache
I think keep this at 2000, which is plenty of time for something to response. If we raise this higher then we'll have to raise the router timeout, which I really want to keep low for speed/stability reasons.