First implementation of base trainer