why is this a singleton? to avoid passing around access tokens to all methods?