avoid circularity