Matthew Cochran wrote an excellent article explaining how to implement the provider pattern: http://www.c-sharpcorner.com/UploadFile/rmcochran/providerPattern08102006110013AM/providerPattern.aspx