Add produces and consumes

I could not get the tests to run in my environment, so I might need help if this change breaks tests.  Even if they don't break, this change is untested in this PR.