finish problem 17
init problem 18