setting refactor