make sure no cicular dependencies