add more sample input
add test for the python implementation
initial branching implementation
use a more expressive node structure in reader
remove some dead or useless code