Like #3 (report_data) somebody would probably want this, and it will definitely make testing easier. In fact proper functional testing probably requires this and #3 . Would mitigate the need for #4 (moving-averages) since you could just reset the counters to get current info.