public static R7ConnectFramework GetInstance(IStorage storage, ILogger logger, Lazy <IBluetoothHelper> bluetoothHelper)
        {
            lock (typeof(R7ConnectFramework))
            {
                if (instance == null)
                {
#if ANDROID
                    ConnectComms.Init(Application.Context);
#endif
                    instance = new R7ConnectFramework(storage, logger, bluetoothHelper);
                }

                return(instance);
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="logger"></param>
        private R7ConnectFramework(IStorage storage, ILogger logger, Lazy <IBluetoothHelper> bluetoothHelper) : base()
        {
            this.logger          = logger;
            this.storage         = storage;
            this.bluetoothHelper = bluetoothHelper;

#if ANDROID
            comms = ConnectComms.GetConnectComms();
            comms.ResponseDelegate  = new Java.Lang.Ref.WeakReference(this);
            comms.MessagingDelegate = new Java.Lang.Ref.WeakReference(this);
            comms.DiscoveryDelegate = new Java.Lang.Ref.WeakReference(this);
#elif IOS
            comms = ConnectComms.GetConnectComms;
            comms.ResponseDelegate  = new R(this);
            comms.MessagingDelegate = new M(this);
            comms.DiscoveryDelegate = new D(this);
#endif


            //Enable();

            device = new R7Device(this, logger);
        }