add recursive reference