add tests, traverser, and value builder