code: def feat(self,k,v):
  		
  
  
  		if (not hasattr(self,'feats')):
  			self.feats = {}
  			if (not hasattr(self,'featpaths')):
  				self.featpaths={}
  		if (not k in self.feats):
  			self.feats[k] = v
  		else:
  			if type(self.feats[k])==type([]):
  				self.feats[k].append(v)
  			else:
  				obj=self.feats[k]
  				self.feats[k]=[obj,v]
docs: Store value 'v' as a feature name 'k' for this object.
  		Features are stored in the dictionary self.feats.
  		[IMPORTANT NOTE:]
  		If the feature 'k' is not yet defined, then:
  			self.feats[k]=v
  		OTHERWISE:
  			self.feats[k] becomes a list (if not already)
  			'v' is added to this list