Major refactor to allow WalkRoot context to be reused with alternative target emitters