formatting
implement generic projection for functors