1. What are the fundamental differences between components as program elements and components as services?
2. Why is it important that components should be based on a standard component model?
3. Using an example of a component that implements an abstract data type such as a stack or a list, show why it is usually necessary to extend and adapt components for reuse.