#19 #18 : Really using preprocessor