closed #5 add preprocessors support