Main program that invokes all