Refactor, in-progress