what makes up a program?