added program state as well as progression mechanism