hmm... do we handle circular dependencies at all?

a => b => c
b => d => c