refactor report builder into separate commands and builders