renamed and start of refactor