diff --git a/bob/bio/vein/database/utfvp.py b/bob/bio/vein/database/utfvp.py
index c699fbd23d56585916fa5d6780285aa65b0bacda..7b15ef6a6a4c692e5ad978953ef1a6c0b772e489 100644
--- a/bob/bio/vein/database/utfvp.py
+++ b/bob/bio/vein/database/utfvp.py
@@ -1,31 +1,43 @@
 #!/usr/bin/env python
 # vim: set fileencoding=utf-8 :
-# Fri 04 Nov 2016 14:46:53 CET
+# Tue 27 Sep 2016 16:48:57 CEST
+
 
 from bob.bio.base.database import BioFile, BioDatabase
 
+from . import AnnotatedArray
+from ..preprocessor.utils import poly_to_mask
+
 
 class File(BioFile):
     """
-    Implements extra properties of vein files for the UTFVP Fingervein database
+    Implements extra properties of vein files for the UTFVP database
 
 
     Parameters:
 
-      f (object): Low-level file (or sample) object that is kept inside
+        f (object): Low-level file (or sample) object that is kept inside
 
     """
 
     def __init__(self, f):
 
-        super(File, self).__init__(client_id=f.client_id, path=f.path,
-                                   file_id=f.id)
+        super(File, self).__init__(client_id=f.unique_finger_name, path=f.path,
+            file_id=f.id)
         self.__f = f
 
 
+    def load(self, *args, **kwargs):
+        """(Overrides base method) Loads both image and mask"""
+
+        image = super(File, self).load(*args, **kwargs)
+        roi = self.__f.roi()
+        return AnnotatedArray(image, metadata=dict(roi=roi))
+
+
 class Database(BioDatabase):
     """
-    Implements verification API for querying UTFVP Fingervein database.
+    Implements verification API for querying UTFVP database.
     """
 
     def __init__(self, **kwargs):
@@ -34,22 +46,38 @@ class Database(BioDatabase):
         from bob.db.utfvp.query import Database as LowLevelDatabase
         self._db = LowLevelDatabase()
 
+        self.low_level_group_names = ('train', 'dev')
+        self.high_level_group_names = ('world', 'dev')
+
+    def groups(self):
+
+        return self.convert_names_to_highlevel(self._db.groups(),
+            self.low_level_group_names, self.high_level_group_names)
+
+    def client_id_from_model_id(self, model_id, group='dev'):
+        """Required as ``model_id != client_id`` on this database"""
+
+        return self._db.finger_name_from_model_id(model_id)
+
+
     def model_ids_with_protocol(self, groups=None, protocol=None, **kwargs):
-        protocol = protocol if protocol is not None else self.protocol
+
+        groups = self.convert_names_to_lowlevel(groups,
+            self.low_level_group_names, self.high_level_group_names)
         return self._db.model_ids(groups=groups, protocol=protocol)
 
+
     def objects(self, groups=None, protocol=None, purposes=None,
                 model_ids=None, **kwargs):
 
+        groups = self.convert_names_to_lowlevel(groups,
+            self.low_level_group_names, self.high_level_group_names)
         retval = self._db.objects(groups=groups, protocol=protocol,
-            purposes=purposes, model_ids=model_ids, **kwargs)
+                                  purposes=purposes, model_ids=model_ids,
+                                  **kwargs)
 
         return [File(f) for f in retval]
 
+
     def annotations(self, file):
         return None
-
-    def client_id_from_model_id(self, model_id, group='dev'):
-        """Required as ``model_id != client_id`` on this database"""
-
-        return self._db.get_client_id_from_model_id(model_id)
diff --git a/bob/bio/vein/tests/test_databases.py b/bob/bio/vein/tests/test_databases.py
index e3adf5ca0f828ccc0823dde04e0640d1dc2e58cb..d665d2710d2c4a1b8589d9155b546a106b23be27 100644
--- a/bob/bio/vein/tests/test_databases.py
+++ b/bob/bio/vein/tests/test_databases.py
@@ -14,8 +14,8 @@ def test_utfvp():
     module = bob.bio.base.load_resource('utfvp', 'config',
         preferred_package='bob.bio.vein')
     try:
-        check_database(module.database, protocol=module.protocol,
-            groups=('dev', 'eval'))
+        check_database(module.database, protocol='nomLeftIndex', groups=('dev',
+          'eval'))
     except IOError as e:
         raise SkipTest(
             "The database could not queried; probably the db.sql3 file is missing. Here is the error: '%s'" % e)
@@ -52,4 +52,4 @@ def test_putvein():
         check_database(module.database, protocol='wrist-LR_1', groups=('dev',))
     except IOError as e:
         raise SkipTest(
-            "The database could not queried; probably the db.sql3 file is missing. Here is the error: '%s'" % e)
\ No newline at end of file
+            "The database could not queried; probably the db.sql3 file is missing. Here is the error: '%s'" % e)