descriptor refactor