Maybe I'm imagining here, but "interfaces everywhere"
seems like a Code Smell to me. One way to help preserve
security while not forcing every class to have an
interface would be to allow mocking of arbitrary classes
as long as the mocking class is in the same assembly as
the class being mocked. Of course, there is alwalways
ILMerge...