10 refactor