use access token
refactored and add an lru cache to avoid rate limiting
conserving log output