first try for the program structure