Compliant objects will exist alongside ercLib in the COST directory. The contributed software provides the meat of the useful software, and the range of its functionality is virtually unlimited. This is good because once you're familiar with ercLib interfaces, learning about new COST objects will be much easier. For example, a COST object can be written with the ability to use threads and semaphores without specific knowledge of what type of thread or semaphore is being used. This makes the COST black-box much more flexible.
Inheritance provides a good mechanism for extension as well as interface definition.
In reality, our choices were limited.