why not just remove invert, not override Injection, and implement andThen and compose on this type?