REFACTOR PART 1