report refactor part1