Separating abstract and driver level of models

Progress has been made! XD