docs: def getById(self, Id):
          """Returns ICachableItem that matches id
          
          Args:
              id: String that identifies the item to return whose key matches
          """
          # we need to create a new object to insure we don't corrupt the generator count
          csvsource = CSVSource(self.source, self.factory, self.key())
          try:
              for item in csvsource.items():
                  if Id == item.getId():
                      return item
          except StopIteration:
              return None