IParser refactoring