First commit for Part 2 and 3