diff --git a/common/vision/datasets/__init__.py b/common/vision/datasets/__init__.py
index c8813b58..770bc4cd 100644
--- a/common/vision/datasets/__init__.py
+++ b/common/vision/datasets/__init__.py
@@ -20,7 +20,8 @@
 from .retinopathy import Retinopathy
 from .eurosat import EuroSAT
 from .resisc45 import Resisc45
+from .rareplanes import Rareplanes
 
 __all__ = ['ImageList', 'Office31', 'OfficeHome', "VisDA2017", "OfficeCaltech", "DomainNet", "ImageNetR", "ImageNetSketch",
            "Aircraft", "cub200", "StanfordCars", "StanfordDogs", "COCO70", "OxfordIIITPet", "PACS", "DTD",
-           "OxfordFlowers102", "PatchCamelyon", "Retinopathy", "EuroSAT", "Resisc45"]
+           "OxfordFlowers102", "PatchCamelyon", "Retinopathy", "EuroSAT", "Resisc45", "Rareplanes"]
diff --git a/common/vision/datasets/rareplanes.py b/common/vision/datasets/rareplanes.py
new file mode 100644
index 00000000..747246a8
--- /dev/null
+++ b/common/vision/datasets/rareplanes.py
@@ -0,0 +1,57 @@
+"""
+@author: Hao Chen
+@contact: chanhal@outlook.com
+"""
+import os
+from typing import Optional
+from .imagelist import ImageList
+from ._util import download as download_data, check_exits
+
+
+class Rareplanes(ImageList):
+    """`OfficeHome <http://hemanthdv.org/OfficeHome-Dataset/>`_ Dataset.
+
+    Args:
+        root (str): Root directory of dataset
+        task (str): The task (domain) to create dataset. Choices include ``'Ar'``: Art, \
+            ``'Cl'``: Clipart, ``'Pr'``: Product and ``'Rw'``: Real_World.
+        download (bool, optional): If true, downloads the dataset from the internet and puts it \
+            in root directory. If dataset is already downloaded, it is not downloaded again.
+        transform (callable, optional): A function/transform that  takes in an PIL image and returns a \
+            transformed version. E.g, :class:`torchvision.transforms.RandomCrop`.
+        target_transform (callable, optional): A function/transform that takes in the target and transforms it.
+
+    .. note:: In `root`, there will exist following files after downloading.
+        ::
+            rareplanes/
+                Alarm_Clock/*.jpg
+                ...
+            fgvc/
+            image_list/
+                rareplanes.txt
+                fgvc.txt
+    """
+    download_list = [       
+    ]
+    image_list = {
+        "rareplanes": "image_list/rareplanes.txt",
+        "fgvc": "image_list/fgvc.txt",
+    }
+    CLASSES = ['707-320','Boeing_717','727-200','737-200','737-300','747-200','757-300','767-200',
+                '767-400','777-300','A300B4','A319','A320','A330-300','A340-300','A380','Cessna_172',
+                'BAE_146-300','Fokker_100','MD-11']
+
+    def __init__(self, root: str, task: str, download: Optional[bool] = False, **kwargs):
+        assert task in self.image_list
+        data_list_file = os.path.join(root, self.image_list[task])
+
+        if download:
+            list(map(lambda args: download_data(root, *args), self.download_list))
+        else:
+            list(map(lambda file_name, _: check_exits(root, file_name), self.download_list))
+
+        super(Rareplanes, self).__init__(root, Rareplanes.CLASSES, data_list_file=data_list_file, **kwargs)
+
+    @classmethod
+    def domains(cls):
+        return list(cls.image_list.keys())
\ No newline at end of file
diff --git a/examples/domain_adaptation/image_classification/dann.py b/examples/domain_adaptation/image_classification/dann.py
index 034ecae6..2592ccc4 100644
--- a/examples/domain_adaptation/image_classification/dann.py
+++ b/examples/domain_adaptation/image_classification/dann.py
@@ -203,9 +203,10 @@ def train(train_source_iter: ForeverDataIterator, train_target_iter: ForeverData
     # dataset parameters
     parser.add_argument('root', metavar='DIR',
                         help='root path of dataset')
-    parser.add_argument('-d', '--data', metavar='DATA', default='Office31', choices=utils.get_dataset_names(),
-                        help='dataset: ' + ' | '.join(utils.get_dataset_names()) +
-                             ' (default: Office31)')
+    # parser.add_argument('-d', '--data', metavar='DATA', default='Office31', choices=utils.get_dataset_names(),
+    #                     help='dataset: ' + ' | '.join(utils.get_dataset_names()) +
+    #                          ' (default: Office31)')
+    parser.add_argument('-d', '--data', default='default') # -chh
     parser.add_argument('-s', '--source', help='source domain(s)', nargs='+')
     parser.add_argument('-t', '--target', help='target domain(s)', nargs='+')
     parser.add_argument('--train-resizing', type=str, default='default')