refactor ownership