finished parser and pre-processer <- which needs more tests