Part1 Final Version