adding functors definition