Take 2 on this CIS490 homework