making sense of functors