modulize the program like a baose