- Created CliApplication interface which defines a common inteface between CliApplications and controlling logic.
- Created QuickSetupCli which is a controller for running CliApplications
- Created CliApplicationHelper (and UninstallCliHelper) having methods for reading input, prompting the user etc. Applications can delegate to the helper classes for these methods if necessary.
- Create a common Launcher class from which InstallLauncher and UninstallLauncher extend. It has common ways of invoking the applications. Setup overrides this behavior since it just ends up calling InstallDS.