added initial preprocessor's functionality