finish problem_twenty along with tests