> what conditions must be in place in order to turn a > complete program into a 'magic box' or function that > can be included in another program?