main structure of main.c