Assignment 2: finished