Final version for asg2