Designing Components With the C++ Stl: A New Approach to Programming