scratch for a preprocessor implementation