anchor.diff:      |> List.rev
       |> List.fold (fun (model : InstallModell) lowerVersion -> 
              let newFiles = model.GetFiles(DotNetFramework(Framework lowerVersion, Full))
  -           let upperVersions = KnownDotNetFrameworks |> List.filter (fun version -> version > lowerVersion)
  -           upperVersions |> List.fold (fun (model : InstallModell) upperVersion -> 
  -                                let framework = DotNetFramework(Framework upperVersion, Full)
  -                                match Map.tryFind framework model.Frameworks with
  -                                | Some files when Set.isEmpty files -> 
  -                                    { model with Frameworks = Map.add framework newFiles model.Frameworks }
  -                                | _ -> model) model) model
  +           let containsPlaceHolder = newFiles |> Set.exists (fun x -> x.Contains(placeHolder))
  +           if Set.isEmpty newFiles || containsPlaceHolder then model
  +           else 
  +               KnownDotNetFrameworks
  +               |> List.filter (fun version -> version > lowerVersion)
  +               |> List.fold (fun (model : InstallModell) upperVersion -> 
  +                      let framework = DotNetFramework(Framework upperVersion, Full)
  +                      match Map.tryFind framework model.Frameworks with
  +                      | Some files when Set.isEmpty files -> 
  +                          { model with Frameworks = Map.add framework newFiles model.Frameworks }
  +                      | _ -> model) model) model
  +
  +
  +let filterBlackList (model : InstallModell) = 
  +    { model with Frameworks = 
  +                     blackList 
  +                     |> List.fold 
  +                            (fun frameworks f -> 
  +                                frameworks 
  +                                |> Map.map (fun _ files -> files |> Set.filter (f >> not))) 
  +                        model.Frameworks }
   
   [<Test>]
   let ``should create empty model with net40, net45 ...``() = 
  
positive.code:     model.GetFiles(DotNetFramework(Framework "v4.0", Full)) |> shouldNotContain (@"..\Rx-Main\lib\net20\Rx.dll")
      model.GetFiles(DotNetFramework(Framework "v4.5", Full)) |> shouldContain (@"..\Rx-Main\lib\net40\Rx.dll")
      model.GetFiles(DotNetFramework(Framework "v4.5.1", Full)) |> shouldContain (@"..\Rx-Main\lib\net40\Rx.dll")
  
negative.code: open Paket
  open NUnit.Framework
  open FsUnit
  
  [<Literal>]
  let placeHolder = "_._"
  let blackList =
      [fun (f:string) -> f.Contains placeHolder]
  
  let KnownDotNetFrameworks = [ "v1.0"; "v1.1"; "v2.0"; "v3.5"; "v4.0"; "v4.5"; "v4.5.1" ]
  
  