extensible software - creating providers and modules
how to create extensible software - providers and modules are the answer