cleaning up problem 2
cleaning up problem 5
cleaning up problem 7
cleaning up problem 8
cleaning up problem 9