Object model and parser both heavily refactored.