refactor
Problem 23 added