all kinds of program, include some example, prototype