I think DNS should be a function of the currently activated cloud rather than a top level config value (to save confusion). It also feels a bit weird that this is being dynamically set as an attribute in the base constructor for all clouds (some clouds may be incompatible with different DNS services and the like). Happy to talk this one through as I haven't got a clear suggestion for how this should look.