made preprocess optional