preprocessor simplification start