circular references detection