Major refactor, introduce Setting classes