3.4.3.2 Programming Model