Final Assignment

Finished the rest, added some tests.