         .EnsureLatestFirmware,
         .EnsureInitialDeviceCanBeClaimed,
         .CheckInitialDeviceHasNetworkInterfaces,
+        .EnsureInitialDeviceIsNotOnMeshNetwork,
+        .SetClaimCode,
         .ChooseFlow
     ]
 
 
     private let joinerFlow: [MeshSetupFlowCommands] = [
-        .SetClaimCode,
-        .EnsureInitialDeviceIsNotOnMeshNetwork,
         .GetUserNetworkSelection,
         .GetCommissionerDeviceInfo,
         .ConnectToCommissionerDevice,

        //jump to new flow
        self.currentStep = 0
        if (self.initialDevice.hasInternetCapableNetworkInterfaces!) {
            self.currentFlow = gatewayFlow
            log("setting gateway flow")
        } else {
            self.currentFlow = joinerFlow




    private let ethernetFlow: [MeshSetupFlowCommands] = [
        .EnsureHasInternetAccess,
        .CheckDeviceGotClaimed,
        .GetNewDeviceName,
