If you need to rewrite the UI every time you change the drivers, you are doing it terribly, horribly wrong. Even Windows 2.0 was already written in a way that was hardware independent. You do not need infinite wisdom, just two working brain cells and some very basic understanding of software architecture. Let me explain it to you in a way that may be easier to understand. Rewriting the UI because the display drivers have changed is like rewriting an email client because you switched from cable to WiFi. Rewriting the UI because the display size has changed is like rewriting an email client because your network speed has changed.