make adjacency list tree public instead of protected. add support for any instance of an iterator. add hierarchic option list generation