let register_view_factory name o =
  try
    ignore(Hashtbl.find factories name);
    failwith (Printf.sprintf "Factory %s already registered" name)
  with
    Not_found ->
      Hashtbl.add factories name o