protect over cyclic references