Full refactor. Introduce DataSetModel
Inital Refactor