prevent circular references