Parser 2.0

New and improved parser implementation takes a big step towards
actually preserving the hierarchy, and utilizes the new classes for
cleanliness.