diff --git a/.gitignore b/.gitignore
index 8eb43c73ebf3b4631c2be64e55733767112d9250..ed9a575aa8621dae4d9a9606e34651550c2b9f1f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,7 @@
 *~
 *.pyc
 *.png
+*.pdf
 .installed.cfg
 .mr.developer.cfg
 eggs/
diff --git a/buildout.cfg b/buildout.cfg
index 818b3bd0d6db4edd0f2677fb4a56b2d594684a49..7d21d76a6a93188ef12c6565c5150c456233403f 100644
--- a/buildout.cfg
+++ b/buildout.cfg
@@ -10,8 +10,5 @@ develop = .
 eggs = xbob.example.faceverify
 newest = false
 
-# TODO: remove this prefix
-prefixes = /idiap/group/torch5spro/releases/bob-1.2.0/install/linux-x86_64-release
-
 [scripts]
 recipe = xbob.buildout:scripts
diff --git a/doc/dct_ubm.png b/doc/dct_ubm.png
index 324e358372b2e3ca19e664bb7e6cda25d2e9d62c..d91e5b1c75e6521914165c3016a256a4f5d22775 100644
Binary files a/doc/dct_ubm.png and b/doc/dct_ubm.png differ
diff --git a/doc/eigenface.png b/doc/eigenface.png
index 39fa0b6a281dddc98ecacbb36715de9c2b7978bf..3e6b4a0c64081281f4107f6693eb2c966fcca797 100644
Binary files a/doc/eigenface.png and b/doc/eigenface.png differ
diff --git a/doc/examples.rst b/doc/examples.rst
index d754f2cb64b94d539543dae9cf1dc198029f4ef6..bf5a542c16aa79368bdb35191bb60a9f10edfaca 100644
--- a/doc/examples.rst
+++ b/doc/examples.rst
@@ -87,7 +87,7 @@ To follow the evaluation protocol, we *enroll* a client model for each client, s
 .. code-block:: python
 
   >>> model_ids = [client.id for client in atnt_db.clients(groups = 'dev')]
-  for model_feature_id in model_features:
+  >>> for model_feature_id in model_features:
   ...   model_id = atnt_db.get_client_id_from_file_id(model_feature_id)
   ...   models[model_id].append(model_features[model_feature_id])
 
@@ -111,7 +111,7 @@ Using these lists, the ROC curve is plotted:
   >>> bob.measure.plot.roc(negatives, positives)
 
 .. image:: eigenface.png
-  :scale: 70 %
+  :scale: 100 %
 
 and the performance is computed:
 
@@ -120,7 +120,7 @@ and the performance is computed:
   >>> threshold = bob.measure.eer_threshold(negatives, positives)
   >>> FAR, FRR = bob.measure.farfrr(negatives, positives, threshold)
 
-The expected result is: FAR 16.4% and FRR 16.4% at distance threshold -2048.9
+The expected result is: FAR 9.15% and FRR 9% at threshold -9276.2
 
 .. note::
 
@@ -166,29 +166,47 @@ Now, the Gabor graph features can be extracted from the model and probe images:
   ...   # ... some steps to create the Gabor jet image ...
   ...   graph_machine(jet_image, probe_feature)
 
+For model enrollment, again we simply collect all enrollment features:
+
+.. code-block:: python
+
+  >>> model_ids = [client.id for client in atnt_db.clients(groups = 'dev')]
+  >>> for key, image in model_features.iteritems():
+  ...   model_id = atnt_db.get_client_id_from_file_id(key)
+  ...   models[model_id].append(model_features[key])
+
 To compare the Gabor graphs, several methods can be applied.
-Here, we chose to compute the similarity of two graphs as the average of corresponding Gabor jet similarities.
-Again, many choices for the Gabor jet comparison exist, here we take Canberra similarity function [GHW12]_:
+Again, many choices for the Gabor jet comparison exist, here we take a novel Gabor phase based similarity function [GHW12]_:
 
 .. code-block:: python
 
-  >>> for model_feature in model_features:
+  >>> SIMILARITY_FUNCTION = bob.machine.GaborJetSimilarity(bob.machine.gabor_jet_similarity_type.PHASE_DIFF_PLUS_CANBERRA, gabor_wavelet_transform)
+
+Since we have several local features, we can exploit this fact.
+For each local position, we compute the similarity between the probe feature at this position and all model features and take the maximum value:
+
+.. code-block:: python
+
+  >>> for model_id in model_ids:
   ...  for probe_feature in probe_features:
-  ...    score = graph_machine.similarity(model_feature, probe_feature, bob.machine.DisparityCorrectedPhaseDifference())
+  ...    for model_feature in models[model_id]:
+  ...      for node_index in range(probe_feature.shape[0]):
+  ...        scores[...] = SIMILARITY_FUNCTION(model_feature[node_index], probe_feature[node_index])
+  ...    score = numpy.average(numpy.max(scores, axis = 0))
 
 The evaluation is identical to the evaluation in the eigenface example.
 Since this method is better for suited for small image databases, the resulting verification rates are better.
 The expected ROC curve is:
 
 .. image:: gabor_graph.png
-  :scale: 70 %
+  :scale: 100 %
 
-while the expected verification result is: FAR 13.1% and FRR 13.2% at distance threshold 0.6894
+while the expected verification result is: FAR 3% and FRR 3% at distance threshold 0.5912
 
 
 The UBM/GMM modeling of DCT Blocks
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-The last example shows a quite complicated, but very successful algorithm.
+The last example shows a quite complicated, but successful algorithm.
 The first step is the feature extraction of the training image features and the collection of them in a 2D array.
 In this experiment we will use *Discrete Cosine Transform* (DCT) block features [MM09]_:
 
@@ -286,15 +304,9 @@ Again, the evaluation of the scores is identical to the previous examples.
 The expected ROC curve is:
 
 .. image:: dct_ubm.png
-  :scale: 70 %
-
-The expected result is: FAR 5% and FRR 5% at distance threshold 7640.9
-
-.. note::
+  :scale: 100 %
 
-  The resulting ROC curve is not directly comparable to the ones from the other experiments.
-  This is due to the fact that here the model files are merged into **one** GMM model **per identity**, whereas before each model file (**five per identity**) generated its own scores.
-  Nonetheless, the verification results of the UBM/GMM model are impressive.
+The expected result is: FAR 5% and FRR 5% at distance threshold 7640.95
 
 
 .. [TP91]   Matthew Turk and Alex Pentland. Eigenfaces for recognition. Journal of Cognitive Neuroscience, 3(1):71-86, 1991.
diff --git a/doc/gabor_graph.png b/doc/gabor_graph.png
index 811648f16b7da5d34e4794ee279a907115ef0f28..2ead22e4aba0f34714cebcc338b404585b071076 100644
Binary files a/doc/gabor_graph.png and b/doc/gabor_graph.png differ
diff --git a/setup.py b/setup.py
index 0571ece6a8a6ad9e008dddb447c974fbc76efa91..e04a747c6a50469938a0b6e7fd6a4faedafd5ce8 100644
--- a/setup.py
+++ b/setup.py
@@ -28,7 +28,7 @@ setup(
     # This is the basic information about your project. Modify all this
     # information before releasing code publicly.
     name='xbob.example.faceverify',
-    version='0.5.1a0',
+    version='1.0.0',
     description='Example for using Bob to create face verification systems',
     url='http://pypi.python.org/pypi/xbob.example.faceverify',
     license='GPLv3',
diff --git a/xbob/example/faceverify/dct_ubm.py b/xbob/example/faceverify/dct_ubm.py
index d72d597226c2f118e14e47d8440c1d9d74a08f6a..d4ff433f4a54e5be58312de51b118425cd4cc35b 100644
--- a/xbob/example/faceverify/dct_ubm.py
+++ b/xbob/example/faceverify/dct_ubm.py
@@ -25,6 +25,10 @@ import os, sys
 import numpy
 import matplotlib
 matplotlib.use('pdf')
+# enable LaTeX interpreter
+matplotlib.rc('text', usetex=True)
+matplotlib.rc('font', family='serif')
+matplotlib.rc('lines', linewidth = 4)
 from matplotlib import pyplot
 
 from .utils import atnt_database_directory
@@ -219,15 +223,15 @@ def main():
 
   # plot ROC curve
   bob.measure.plot.roc(negatives, positives)
-  pyplot.xlabel("False Rejection Rate (%)")
-  pyplot.ylabel("False Acceptance Rate (%)")
-  pyplot.title("ROC Curve for UBM/GMM based AT&T Verification Experiment")
+  pyplot.xlabel("False Rejection Rate (\%)")
+  pyplot.ylabel("False Acceptance Rate (\%)")
+  pyplot.title("ROC Curve for UBM/GMM based AT\&T Verification Experiment")
   pyplot.grid()
   pyplot.axis([0, 100, 0, 100]) #xmin, xmax, ymin, ymax
 
   # save plot to file
-  pyplot.savefig("dct_ubm.png")
-  print("Saved figure 'dct_ubm.png'")
+  pyplot.savefig("dct_ubm.pdf")
+  print("Saved figure 'dct_ubm.pdf'")
 
   # show ROC curve.
   # enable it if you like. This will open a window and display the ROC curve
diff --git a/xbob/example/faceverify/eigenface.py b/xbob/example/faceverify/eigenface.py
index 9d2d7dd66d4d0d8275b7ae73242ea3c2bef154ca..47b1a1cea7f7d284766921aac70cdfd0d25ce888 100644
--- a/xbob/example/faceverify/eigenface.py
+++ b/xbob/example/faceverify/eigenface.py
@@ -25,6 +25,10 @@ import os, sys
 import numpy, scipy.spatial
 import matplotlib
 matplotlib.use('pdf')
+# enable LaTeX interpreter
+matplotlib.rc('text', usetex=True)
+matplotlib.rc('font', family='serif')
+matplotlib.rc('lines', linewidth = 4)
 from matplotlib import pyplot
 
 from .utils import atnt_database_directory
@@ -152,9 +156,9 @@ def main():
 
   # plot ROC curve
   bob.measure.plot.roc(negatives, positives)
-  pyplot.xlabel("False Rejection Rate (%)")
-  pyplot.ylabel("False Acceptance Rate (%)")
-  pyplot.title("ROC Curve for Eigenface based AT&T Verification Experiment")
+  pyplot.xlabel("False Rejection Rate (\%)")
+  pyplot.ylabel("False Acceptance Rate (\%)")
+  pyplot.title("ROC Curve for Eigenface based AT\&T Verification Experiment")
   pyplot.grid()
   pyplot.axis([0, 100, 0, 100]) #xmin, xmax, ymin, ymax
 
diff --git a/xbob/example/faceverify/gabor_graph.py b/xbob/example/faceverify/gabor_graph.py
index 4f6f516eec5566fa268548e3d3996e4b6ef93b02..a09484941a14a634edcbf857e55e952909b19479 100644
--- a/xbob/example/faceverify/gabor_graph.py
+++ b/xbob/example/faceverify/gabor_graph.py
@@ -25,6 +25,10 @@ import os, sys
 import numpy, math
 import matplotlib
 matplotlib.use('pdf')
+# enable LaTeX interpreter
+matplotlib.rc('text', usetex=True)
+matplotlib.rc('font', family='serif')
+matplotlib.rc('lines', linewidth = 4)
 from matplotlib import pyplot
 
 from .utils import atnt_database_directory
@@ -66,7 +70,7 @@ def extract_feature(image, graph_machine):
 
 
 # define a certain Gabor jet similarity function that should be used
-SIMILARITY_FUNCTION = bob.machine.GaborJetSimilarity(bob.machine.gabor_jet_similarity_type.CANBERRA, gabor_wavelet_transform)
+SIMILARITY_FUNCTION = bob.machine.GaborJetSimilarity(bob.machine.gabor_jet_similarity_type.PHASE_DIFF_PLUS_CANBERRA, gabor_wavelet_transform)
 
 def main():
   """This function will perform Gabor graph comparison test on the AT&T database."""
@@ -136,7 +140,6 @@ def main():
 
       # the final score is computed as the average over all positions, taking the most similar model jet
       score = numpy.average(numpy.max(scores, axis = 0))
-#      score = graph_machine.similarity(model_feature, probe_feature, SIMILARITY_FUNCTION)
 
       # check if this is a positive score
       if model_id == atnt_db.get_client_id_from_file_id(probe_key):
@@ -157,15 +160,15 @@ def main():
 
   # plot ROC curve
   bob.measure.plot.roc(negatives, positives)
-  pyplot.xlabel("False Rejection Rate (%)")
-  pyplot.ylabel("False Acceptance Rate (%)")
-  pyplot.title("ROC Curve for Gabor phase based AT&T Verification Experiment")
+  pyplot.xlabel("False Rejection Rate (\%)")
+  pyplot.ylabel("False Acceptance Rate (\%)")
+  pyplot.title("ROC Curve for Gabor phase based AT\&T Verification Experiment")
   pyplot.grid()
   pyplot.axis([0, 100, 0, 100]) #xmin, xmax, ymin, ymax
 
   # save plot to file
-  pyplot.savefig("gabor_graph.png")
-  print("Saved figure 'gabor_graph.png'")
+  pyplot.savefig("gabor_graph.pdf")
+  print("Saved figure 'gabor_graph.pdf'")
 
   # show ROC curve.
   # enable it if you like. This will open a window and display the ROC curve
diff --git a/xbob/example/faceverify/tests/__init__.py b/xbob/example/faceverify/tests/__init__.py
index 2e9a9d383602e64f5ad71d0803937a88b4ec161a..69b0f3034aeb8ae08e8a8f7c938543269781e30a 100644
--- a/xbob/example/faceverify/tests/__init__.py
+++ b/xbob/example/faceverify/tests/__init__.py
@@ -143,7 +143,7 @@ class FaceVerifyExampleTest(unittest.TestCase):
 
     # compute score
     score = graph_machine.similarity(model, probe, SIMILARITY_FUNCTION)
-    self.assertAlmostEqual(score, 0.66058309)
+    self.assertAlmostEqual(score, 0.414937662799)
 
 
   def test03_dct_ubm(self):