preprocessor implemented and fully functional