let prefetch_and_create_state name =
    if (Hashtbl.mem prefetched_states name) or not (Hashtbl.mem observed_states name) then
      begin
        let s= fetch_and_create_state name in 
        Hashtbl.add prefetched_states name name;
        s
      end 
    else
      (fetch_and_create_state name)