refactoring DefaultLauncher and related classes