def append(self, callback):
		"""Just like list.append, except it can also handle lists and discards None-values"""
		if callback is None:
			pass
		elif callable(callback):
			list.append(self, WeakMethod(callback))
		elif isinstance(callback, list, tuple):
			for i in callback:
				self.append(i)
		else:
			assert False
	def __contains__(self, elem):
		if isinstance(elem, WeakMethod):
			return list.__contains__(self, elem)
		else:
			return WeakMethod(elem) in self
	def remove(self, elem):
		if not isinstance(elem, WeakMethod):
			elem = WeakMethod(elem)
		list.remove(self, elem)