compute cumulative node weights at run time instead of storing them
refactor program tree code to only store explored nodes
cache summed child weights for nodes