Assignment 1, almost finished.