Supports lab 3 and increase test coverage

Fixes #19