Final version for asg1