Added preprocessor optimizations