         self.lastTappedNonTinkerDevice = nil
         
         
-        var deviceTypeStr = "";
-        
-        switch self.selectedDevice!.type
-        {
-        case .Photon:
-            deviceTypeStr = "Photon";
-            
-        case .Electron:
-            deviceTypeStr = "Electron";
-            
-        case .Core:
-            deviceTypeStr = "Core";
-            
-        default:
-            deviceTypeStr = "Other";
-            
-        }
+        let deviceInfo = self.getDeviceNameAndImage(self.selectedDevice)
         
         if segue.identifier == "tinker" {
             if let vc = segue.destinationViewController as? SPKTinkerViewController {
                 vc.device = self.selectedDevice
                 
-                Mixpanel.sharedInstance().track("Tinker: Start Tinkering", properties: ["device":deviceTypeStr, "running_tinker":vc.device.isRunningTinker()])
+                Mixpanel.sharedInstance().track("Tinker: Start Tinkering", properties: ["device":deviceInfo.deviceName, "running_tinker":vc.device.isRunningTinker()])
                 
             }
         }

        if segue.identifier == "info" {
            if let vc = segue.destinationViewController as? DeviceInfoViewController {
                vc.device = self.selectedDevice
                
                Mixpanel.sharedInstance().track("Tinker: Info", properties: ["device":deviceTypeStr])
                
            }
        }

                cell.deviceNameLabel.text = "<no name>"
            }
            
            let deviceInfo = self.getDeviceNameAndImage(self.devices[indexPath.row])

            cell.deviceImageView.image = deviceInfo.deviceImage
            cell.deviceTypeLabel.text = deviceInfo.deviceName

            cell.deviceIDLabel.text = devices[indexPath.row].id.uppercaseString
            

            let deviceStateInfo = getDeviceStateDescAndImage(devices[indexPath.row])
            cell.deviceStateLabel.text = deviceStateInfo.deviceStateText
            cell.deviceStateImageView.image = deviceStateInfo.deviceStateImage

            // override everything else
            if devices[indexPath.row].isFlashing || self.deviceIDflashingDict.keys.contains(devices[indexPath.row].id)
            {
