Some refactoring, adding reporting and the parser controller