Fixed preprocessor, can now handle 95% of cases (number made up). Passes all current tests.