Move towards a more sensible API for settings