Basic structure of the program