built basic preprocessor