Basic outline of the program