some more work on connection functor