basic program outline?