anchor.diff:            manager.Post(Initialize(sendData, Process uri))
             return! loop managers
         }
  -    loop []
  -  )
  +    loop [])
   
   let metaManager = newMetaManager()
   
  
positive.code: 
  type Manager =
    | Initialize of SendData * Command
    | Do
    | WorkerDone
  
  type MetaManager =
  
negative.code:         | Worker.Do ->
            match command with
            | Process uri ->
              doit uri |> ignore
            return! loop ()
        }
      loop ())
  
  let rec haveWorkerWork (workers : actor<Worker> list) maxWorkers activeWorkers =
    if activeWorkers < maxWorkers then
      match workers with
      | worker :: remainingWorkers ->
        worker.Post(Worker.Do)
        worker.Post(Retire)
        //recurse in case there arent enough working workers
        haveWorkerWork remainingWorkers maxWorkers (activeWorkers + 1)
      | [] -> [], activeWorkers
    else //nothing changes until a worker frees up
      workers, activeWorkers
  
  let newManager () : actor<Manager> =
    actor.Start(fun self ->
      let rec loop (workers : actor<Worker> list) maxWorkers activeWorkers =
        async {
          let! msg = self.Receive ()
          match msg with
          | Manager.Initialize (sendData, command) ->
            //build up a list of all the work to do
            let workers = [ 1 .. sendData.NumberOfRequests ] |> List.map (fun id -> newWorker id self command)
            let maxWorkers = sendData.MaxWorkers
            let activeWorkers = 0
            let remainingWorkers, activeWorkers = haveWorkerWork workers maxWorkers activeWorkers
            return! loop remainingWorkers maxWorkers activeWorkers
          | Manager.WorkerDone ->
            let remainingWorkers, activeWorkers = haveWorkerWork workers maxWorkers (activeWorkers - 1)
            return! loop remainingWorkers maxWorkers activeWorkers
        }
      loop [] 0 0)
  
  let getManager managers jobId =
    let maybeManager = managers |> List.tryFind (fun (jobId', _) -> jobId' = jobId)
  