Finish preprocessor, still needs testing