refactor launch and start