refactor oAuth classes