In particular, the use of function-objects according to the present invention enhances a designer's ability to design, build and use object-oriented systems and applications--even if the designer is required to use programming languages with non-OOP features such as traditional C and Pascal.