refactor custom settings