creates some interfaces and classes that describe the program outline