I want to make an C++ application which is highly expandable. The basic idea is a main application which contains of some basic functionality and the application life cycle