recursive object descriptors