refactor, almost complete report