finished problem 19
finished problem 20
finished problem 21
finished problem 22