write CreateProgram