Moved report subclasses into separate files and improved capability checking