Assignment #3 for CS261