refactor part 1