added grouping and reporting
cleanup
cleanup
cleanup