add new strucutres and member functions for smart launch