IN PROGRESS Big refactor in prep of new version