don't allow circular refs