Added part 1.
Finished part 2.
finished part 3.