add consumer, and tests