updated to include some stats and refactor template parameters to use a
DTO.