move filtering from preprocess to machine learning and implement some option interfaces