Add a lot of new stuff, including GetRoot and additional tests