add evaluator model. split functionality to training and evaluation