decoupled the model from the training process via the introduciton of a Trainer class. All seems easier now. Need to adjust all documentation. Also added a few losses and an R2 metric, as well as the possibiliy of customising virually every single component of the model