why do we still put up with circular dependencies in modern codebases? can't we just install one freaking package at a time without having to resort to all these silly workarounds?