refactor extensions