down the circular dependency rabbit hole...