continuing with refactor