sort of circular constraint