Partially implemented problem 1
Implemented problem 1
Implemented problem 2
Implemented problem 6