refatoring problem1
refactoring problem2
refactor problem3
refactor problem4
refactor problem 5
refactor problem 6
refactor problem 7: add end of file line
refactor problem 8
refactor problem 11
refactor problem 12
refactor problem 14
refactor problem 16
create problem 18
create test code
create test for p018