preprocess done