Final version of Lab5