tearing up entire model with much better parsing and view construction, with tests