refactoring: use the consumer infrastructure to handle basic return