allow the addition of other report factories without code change
add spec for loading alternative report types
move report_factory to a method