added running state and program runner