start to separate the preprocessing and postprocessing of the learning