Part 2 implemented