Initial work on separating the parsing code from the data representation.
Clean up separated parser / data code