Added preprocessor guards