Interfaces are a sort of contract which states that the implementing object must implement all methods of the interface. Fine. But at the next level up you might have several related interfaces, and want to have a contract that a dll will implement all of those interfaces, and do so just once. Can this be done? Or am I better thinking of having one big interface and somehow dividing the procedures in that into categories?