* adding better training logging and slightly optimizing the expensive size calls