refactored the Consumer. fixes #15