add tests and solutions for problems 17-20