5.1.2.2 : Main program