I spent some time trying to find a best solution than the current one, just to remove the circular dependency, but without success.

I'm really wondering if we shouldn't stick to the current implementation (which satisfied me).