Final version of hw3