programming model intro