let create_find_subproject_at_address (p:project) (padd:paddress) =
let rec create_rec proj qadd = match qadd with
| [] -> proj
| x::c ->
let lp = List.filter (fun t -> (get_project_num t) = x) !(proj.sub) in
match (List.length lp) with
| 0 -> begin
let subp = make_project x ~a:padd in
proj.sub := subp::(!(proj.sub));
create_rec subp c;
end;
| 1 -> create_rec (List.hd lp) c;
| _ -> failwith ("Address pointing to multiple projects")
in create_rec p padd