added some base classes for interfaces

I'm not sure this is a good idea...