Refactor to take one settings arg + currying