comments about the implementation

also explain behavior of getRoot1 and getRoot2
when there are no roots
one root
or two roots