Rewrite all the things
Start adding OAuth2 support