Setup generic datasource class
Have all other datasource inherit from that class as well as all protocols defined there.