strongly type attributes

**please review**
it returns null because the return type of the method is Void and java does not autobox void types. I did this to prevent the need for having separate Visitor and Transformer interfaces. This is quite a common code pattern for visitors and is used in the javac api as well.