- Use a window method to handle updating the window after scale changes. This avoids the need for methods that return mutable references to DPI & scale. - Remove window.outputs() method that returned window->system->outputs as it is misleading to expose these as window outputs when the outpurs returned are all known outputs. - Use a vector instead of an unordered_set to store window outputs, while a 'set' does make sense, it means the outputs can't be accessed in the order they're added which may be useful for further changes. - Use early returns.