building functors out of ends