the start of a refactor