void FindControllersWorker()
        {
            while (true)
            {
                var foundUnpairedControllerAddresses = FindUnpairedControllersAddresses();
                foreach (var nameAddressTuple in foundUnpairedControllerAddresses)
                {
                    var deviceName       = nameAddressTuple.Item1;
                    var bluetoothAddress = nameAddressTuple.Item2;

                    if (_discoveredControllers.Any(c => c.BluetoothAddress == nameAddressTuple.Item2))
                    {
                        // we already know about this controller
                        //logger.Info($"Found {deviceName} - Already added before");
                        continue;
                    }

                    logger.Info($"Found {deviceName} - NEW");

                    if (deviceName.Contains("Gear VR Controller"))
                    {
                        // create and add new gear vr controller
                        var gearVRController = new GearVRController(bluetoothAddress);
                        gearVRController.Initialize();

                        _discoveredControllers.Add(gearVRController);

                        OnNewControllerAdded(gearVRController);
                    }
                    // TODO: elseif Daydream
                }
            }
        }