beginning of a major refactor