preprocessor framework almost done