First draft of model layer, minus the yaml test data.