Added infrastructure for visitors, hopefully will be useful
Visitor tests
Merge branch 'visitors' into develop