diff --git a/vitookit/datasets/ffcv_transform.py b/vitookit/datasets/ffcv_transform.py
index bee28cc2028b11f16de8e58e31cbb9fe61bc1ef2..1d2a722ed187050abe050c35baee589cc0db47d5 100644
--- a/vitookit/datasets/ffcv_transform.py
+++ b/vitookit/datasets/ffcv_transform.py
@@ -55,7 +55,17 @@ class DynamicResolution:
                 dict(res=160,lower_scale=0.08, upper_scale=0.4624),
                 dict(res=192,lower_scale=0.08, upper_scale=0.7056),
                 dict(res=224,lower_scale=0.08, upper_scale=1),
-            ]
+            ],
+            4:[
+                dict(res=160,lower_scale=0.20, upper_scale=0.634),
+                dict(res=192,lower_scale=0.137, upper_scale=0.81),
+                dict(res=224,lower_scale=0.08, upper_scale=1),
+            ],
+            5: [
+                dict(res=160,lower_scale=0.20, upper_scale=1),
+                dict(res=192,lower_scale=0.137, upper_scale=1),
+                dict(res=224,lower_scale=0.08, upper_scale=1),
+            ],
             
         }
         self.scheme = schemes[scheme]
diff --git a/vitookit/evaluation/eval_image_retrieval.py b/vitookit/evaluation/eval_image_retrieval.py
index e7f60c7208560995268de76b37a4016485f99351..3a4c0b247e4ca88e4bc2c8f05c6f45ae53251db0 100644
--- a/vitookit/evaluation/eval_image_retrieval.py
+++ b/vitookit/evaluation/eval_image_retrieval.py
@@ -20,13 +20,14 @@ import torch.distributed as dist
 import torch.backends.cudnn as cudnn
 import numpy as np
 from vitookit.utils.helper import load_pretrained_weights
-import vitookit.utils
+from vitookit.utils.metric import compute_map
+import vitookit.utils.misc as misc
 
 from vitookit.models import vision_transformer as vits, vision_transformer_rel as vits_rel
 
 from torch import nn
 from PIL import Image, ImageFile
-from torchvision import vitookit.models as torchvision_models
+
 from torchvision import transforms as pth_transforms
 from eval_knn import extract_features, ReturnIndexDatasetWrap
 
@@ -91,10 +92,10 @@ if __name__ == '__main__':
     parser.add_argument('--data_location', default='/path/to/revisited_paris_oxford/', type=str)
     parser.add_argument('--bn', default=False, action='store_true')
     parser.add_argument('--data_set', default='roxford5k', type=str, choices=['roxford5k', 'rparis6k'])
-    parser.add_argument('--multiscale', default=False, type=utils.bool_flag)
+    parser.add_argument('--multiscale', default=False, action='store_true')
     parser.add_argument('--imsize', default=224, type=int, help='Image size')
     parser.add_argument('-w', '--pretrained_weights', default='', type=str, help="Path to pretrained weights to evaluate.")
-    parser.add_argument('--use_cuda', default=True, type=utils.bool_flag)
+    parser.add_argument('--use_cuda', default=True, action='store_true')
     parser.add_argument('--arch', default='vit_small', type=str, choices=['vit_tiny', 'vit_small', 'vit_base', 
         'vit_large'], help='Architecture.')
     parser.add_argument('--patch_size', default=16, type=int, help='Patch resolution of the model.')
@@ -110,7 +111,7 @@ if __name__ == '__main__':
     args = parser.parse_args()
 
     misc.init_distributed_mode(args)
-    print("git:\n  {}\n".format(utils.get_sha()))
+    print("git:\n  {}\n".format(misc.get_sha()))
     print("\n".join("%s: %s" % (k, str(v)) for k, v in sorted(dict(vars(args)).items())))
     cudnn.benchmark = True
 
@@ -194,7 +195,7 @@ if __name__ == '__main__':
             g['ok'] = np.concatenate([gnd[i]['easy'], gnd[i]['hard']])
             g['junk'] = np.concatenate([gnd[i]['junk']])
             gnd_t.append(g)
-        mapM, apsM, mprM, prsM = misc.compute_map(ranks, gnd_t, ks)
+        mapM, apsM, mprM, prsM = compute_map(ranks, gnd_t, ks)
         # search for hard
         gnd_t = []
         for i in range(len(gnd)):
@@ -202,7 +203,7 @@ if __name__ == '__main__':
             g['ok'] = np.concatenate([gnd[i]['hard']])
             g['junk'] = np.concatenate([gnd[i]['junk'], gnd[i]['easy']])
             gnd_t.append(g)
-        mapH, apsH, mprH, prsH = misc.compute_map(ranks, gnd_t, ks)
+        mapH, apsH, mprH, prsH = compute_map(ranks, gnd_t, ks)
         print('>> {}: mAP M: {}, H: {}'.format(args.data_set, np.around(mapM*100, decimals=2), np.around(mapH*100, decimals=2)))
         print('>> {}: mP@k{} M: {}, H: {}'.format(args.data_set, np.array(ks), np.around(mprM*100, decimals=2), np.around(mprH*100, decimals=2)))
         log_stats = {