problem 17 and 18 - implemented.