assignment 3: finished