Many Changes

Increased abstraction in analyze method.
Changed other visitors according to plan worked out on whiteboard.