add test for circular ref