let update_groups_size glist =  
  let gsl = List.map (fun t -> 
                        let num = List.fold_left (fun x y -> if ((y.group)=t)
                                                  then (x+1) else x) 0 glist in
                          (t,num)) !num_groups in 
    List.iter (fun gnum -> update_group_size gnum (List.assoc gnum gsl))
      !num_groups