Split oauth.py into separate modules