refactor to separate settings