refactored the report method