Add parser trait and OAuth2 Services refactor