added DataModelInterface; AbstractDataModel auto parcelling; other improvements/refactoring/tests