Big refactor to support access token expirations