programming model initial