Added initial pass at phases and dependencies between visitors, and cleaned up formatting.
Updated phases to use Java standard naming
Removed null and use the no-args method