preprocessor nonsense