start of a refactor