first attack at preprocessor