Nitpick, but should we put dependent: destroy on the compute_attributes line instead?  Although it seems to only destroy the attributes (which is the aim here, rather than the profile), it might be a little clearer to read.