Assignment3

Implements #12