refactor launch structure