circular dependency fix