refactor pass two done