Refactored the Launcher class