fix: a bug for circular reference