refactor part 14