tried to implement tree creation but failed due to lack of knowledge about weak and strong references in rust. had to split new() into new() and load() for this otherwise we would get problems with lifetimes