Seems to me it makes more sense to build the functionality into separate assemblies and use them in a plug-in style...

-tg