for each instance we call the root tree dir ( /dir1/dir2/) to travel the tree and add the instance.
In this process, we create sub dirs:
Tree starts with 1 DirStat holding: dir1/dir2
when file1 is loaded to tree:
  dir1/dir2/dir3 is created under DirStat (which holds dir1/dir2)
  dir1/dir2/dir3/file1 is created as FileStat under DirStat (which holds dir1/dir2/dir3)
when file2 is loaded to tree:
Travel starts at DirStat (which holds dir1/dir2):
dir1/dir2/dir3 already exists so it continues with recursive call to it with load_instance
dir1/dir2/dir3/file4 is created under DirStat (which holds dir1/dir2/dir3)
dir1/dir2/dir3/dir4/file1 is created as FileStat under DirStat (which holds dir1/dir2/dir3/dir4)