Added Hopper class and tests.