refactor, refactor, refactor