Refacto apply option with preprocess