anchor.diff:      entitySet ||> subset
       |> Seq.toArray
       |> Array.Parallel.map(fun y -> 
  -      use p = ServiceProxy.getOrganizationServiceProxy client.IServiceM client.authCred
  -      y, CrmData.CRUD.delete p y.LogicalName y.Id)
  +      proxyContext client (fun p -> 
  +        y, CrmData.CRUD.delete p y.LogicalName y.Id) )
       |> Array.iter(
         fun (x,_) -> 
         log.WriteLine(LogLevel.Verbose,
  
positive.code:     |> Seq.toArray
      |> Array.Parallel.iter(
        fun (key,plugin)  ->
                  
        use p = ServiceProxy.getOrganizationServiceProxy client.IServiceM client.authCred
        log.WriteLine(LogLevel.Debug, 
          sprintf "Retrieving plugin step: %s" key)
        let ps = CrmData.Entities.retrieveSdkProcessingStep p key
  
        log.WriteLine(LogLevel.Debug, 
          sprintf "Retrieving images for step: %s" key)
        let images =
            CrmData.Entities.retrievePluginProcessingStepImages 
                p ps.Id
        log.WriteLine(LogLevel.Debug, 
          sprintf "Found %d images" (Seq.length images))
                      
        let sourceImage =
          plugin
          |> Seq.map(fun pl -> pl.images)
          |> Seq.fold(fun acc i' -> 
            i' 
            |> Seq.map(fun image -> image.name) 
            |> Seq.append acc) Seq.empty
          |> Set.ofSeq
  
        let targetImage = 
            images
            |> Seq.map(fun y ->
              let name  = getName y
              name)
            |> Set.ofSeq
  
        let newImages = sourceImage - targetImage
        let updateImages = Set.intersect sourceImage targetImage
  
        log.WriteLine(LogLevel.Debug, sprintf "Creating Images for: %s" key)
        createPluginImages log solution.entity client newImages plugin ps
  
        log.WriteLine(LogLevel.Debug, sprintf "Updating Images for: %s" key)
        updatePluginImages log client (updateImages,images) plugin)
  
    let syncPlugins = 
  
  
negative.code:         | false ->
            let psi = updateImage y.Id updates
            CrmData.CRUD.update p psi |> ignore
            Some y) )
  
      |> Array.choose(id)
      |> Array.iter(
        fun x -> 
          log.WriteLine(LogLevel.Verbose,
            sprintf "%s: (%O) was updated" x.LogicalName x.Id)) 
  
    // Delete plugin functions
    let deleteTypes (log:ConsoleLogger.ConsoleLogger) client entitySet = 
      entitySet ||> subset
      |> Seq.toArray
      |> Array.Parallel.map(fun x ->
        proxyContext client (fun p -> 
          x, CrmData.CRUD.delete p x.LogicalName x.Id) )
      |> Array.iter(
        fun (x,_) -> 
          log.WriteLine(LogLevel.Verbose,
  