Move OAuth to distinct module