Reduced execution flow dependencies and made all search parsers share the basic code rather than implementing everything all over again in each parser through awkward protected functions.