Final version of assignment