Namer

Still working on making the test cases pass, but I very much like the visitors :) .
What about static methods? I imagine that at least error messages could get very confusing if you try to call a `main` method.