More work on visitor for #8

I need to refactor most of the current filter processing to use the visitor methods.