anchor.diff:                      | None -> 
                           // create a new profile and save
                           createProfile exePath
  -                        updateLabel(oldLabel,exePath)
  +                        updateUiProfile(uiProfile,exePath)
                           // TODO: this shouldn't be a textbox; must always be a valid exe, therefore only settable via
                           // browse button
                           ms.profTBExePath.Text <- exePath 
  
positive.code:         | "" -> pendingProfileName
          | p -> Path.GetFileNameWithoutExtension(p)
          
      let findLbProfile displayName = 
          // not using IndexOf from the collection here because we don't want an equality check on the full 
          // profile object.  Just want display name.
          let idx = 
              state.Value.MainScreenForm.lbProfiles.Items 
              |> Seq.cast<UIProfile>
              |> Seq.findIndex (fun p -> p.DisplayName = displayName)
          idx
  
      let updateLabel (oldLabel,exePath) = 
              let idx = findLbProfile oldLabel
              let uiProfile = state.Value.MainScreenForm.lbProfiles.Items.[idx] :?> UIProfile
              let newLabel = profileLabelFromPath(exePath)
  
              state.Value.MainScreenForm.lbProfiles.Items.[idx] <- { uiProfile with DisplayName = newLabel }
  
      let isProfileSelected() = state.Value.MainScreenForm.lbProfiles.SelectedItem <> null
  
      let initMainScreen() =
          let ms = new WizUI.MainScreen()
  
negative.code:                 let newLbl = ms.lbProfiles.Items.Add({ EmptyProfile with DisplayName = pendingProfileName}) 
                  ms.lbProfiles.SelectedIndex <- newLbl
                  ms.profTBExePath.Text <- ""
                  ms.probTBModsPath.Text <- "") //TODO build from global default and exe path
  
          ms.profBtnExeBrowse.Click.Add(fun (evArgs) ->
              let checkForExistingProfile exePath = RegConfig.findProfile exePath
              let createProfile exePath = RegConfig.saveProfile({CoreTypes.DefaultRunConfig with ExePath = exePath})
  
              match getSelectedProfile() with
              | :? UIProfile as uiProfile -> 
                  // TODO: bah, naming here sucks - need better distinction between the registy profile
                  // and the ui profile stored in the list box.
                  let oldPathValid = File.Exists(ms.profTBExePath.Text)
  
                  let resExe = selectExecutableDialog(ms)
  