added new preprocessor utilities, and tests