c-like preprocessor implementation added