handle circural structures more properly
pre-merge