writing some properly sane tests and rewrote branch_nodes to be better for extending