// The 'actual' method
        public SPOService InstantiateSPOService(Uri destinationUrl, string loginUrl, PSCredential credential, string tenantId, PromptBehavior?behavior)
        {
            var context = new CmdLetContext(destinationUrl.ToString(), null, null);

            if (credential == null)
            {
                OAuthSession session = string.IsNullOrEmpty(tenantId) ? new OAuthSession() : new OAuthSession(string.Format(nonCommon, tenantId));
                if (_cid == null)
                {
                    session.SignIn(loginUrl, behavior.Value);
                }
                else
                {
                    session.SignIn(loginUrl, behavior.Value, _cid.ToString(), _rduri.ToString());
                }

                context.OAuthSession = session;
            }
            else
            {
                var spCreds = new SharePointOnlineCredentials(credential.UserName, credential.Password);
                context.Credentials = spCreds;
            }
            return(new SPOService(context));
        }