separated off all API code into separate namespaces
add simple caching for api requests, remove redundant async arguments
make caches time based, set to expire after 3 days