This provides a reusable way to generate streams of feedback events that can be directed to a file or analytics service. Address item 1 in issue #28