added program outline