consolidates some code in the Consumer