Subroutines may be used in a Presentation Manager application, in the same way as they are used in any other application. However, in order to conform to object-oriented practices, subroutine calls should only be used to achieve functional isolation within the methods of a single application object, or to perform a standard processing function that is common to a number of objects; in this case, the scope of each execution instance of the subroutine is limited to a single object. In accordance with object-oriented programming guidelines, communication between objects (windows) should be achieved using messages, and hence window procedures should not be invoked directly as subroutines. See Passing Control for further discussion on the use of subroutines in Presentation Manager applications.