Simplify Analyzer Results implementation by introducing a Factory and multiple classes and subclasses to handle the 8 different kinds of results