final assignment from Comp Sci 251