settings refactor