Assignment 3: Tasks 1 and 2 + tests for them.
Additionally includes the provided code that will be needed for later tasks in the assignment