refactor completed