circular reference test