Implemented Part 3