Main program runs