Homework 3 for CS445