begin rewrite of the UI generic interface in C++.
eventually hope to use C++ to rewrite all the first revision of installer.