In essence I want to create a structure of interfaces and classes where at different levels I want to force a certain type. In the example below I define an interface called