massive refactor to use TPath::Context objects instead of the collection of parameters
passed around previously -- node, index, collection