def self.descendants
    unless @@subclasses_preloaded
      Dir.glob("#{Rails.root}/app/models/taxon_name_relationship/**/*.rb")
        .sort { |a, b| a.split('/').count <=> b.split('/').count }
        .map { |p| p.split('/app/models/').last.sub(/\.rb$/, '') }