An abstract class to help build a collection methods which can be used as an IOC Container