Parser. Some refactoring + parser hierarchy