large refactoring of incoming data model as hashed out with glikker over a period of a few days