The base program structure

Please take a look and tell me when you think and what might need
changing.