refactor report service