more inprogress refactor