diff --git a/build_pop.py b/build_pop.py
index c12f4369ed3be97514c4d7b8340cdc70223a33a8..f5acfbb6b64774137a71fd49ce840d6cba6b8d8a 100755
--- a/build_pop.py
+++ b/build_pop.py
@@ -11,8 +11,8 @@ import vcf
 from Bio import SeqIO
 import tempfile
 from pysam import tabix_compress, tabix_index, VariantFile
-from variants_simulator import VariantsSimulator
-from exceptions import InputException, ExecException
+from lib.variants_simulator import VariantsSimulator
+from lib.exceptions import InputException, ExecException
 import multiprocessing
 import subprocess
 
diff --git a/exceptions.py b/lib/exceptions.py
similarity index 100%
rename from exceptions.py
rename to lib/exceptions.py
diff --git a/genotype_results.py b/lib/genotype_results.py
similarity index 93%
rename from genotype_results.py
rename to lib/genotype_results.py
index a236c05d9bd287ee6782b620bbb1535a60cbe457..2199f1f1a8aa9bfbc744415433cb27d1c0725bdc 100755
--- a/genotype_results.py
+++ b/lib/genotype_results.py
@@ -65,25 +65,7 @@ def getvarsize(variant):
     return variant.stop - variant.start + 1
 
 
-def main(genotypes, predicted, filtered, output, type_v="del", verbose=False):
-    true_genotypes = readgenotypes(vcffile=genotypes,
-                                   variants={},
-                                   type_v=type_v)
-    pred_genotypes = {}
-    filtered_genotypes = {}
-    with open(predicted, "r") as preds:
-        for pred in preds:
-            pred = pred.rstrip()
-            if pred != "":
-                readgenotypes(vcffile=pred,
-                              variants=pred_genotypes,
-                              type_v=type_v)
-                if filtered:
-                    readgenotypes(vcffile=pred,
-                                  variants=filtered_genotypes,
-                                  type_v=type_v,
-                                  dofilter=True)
-
+def build(true_genotypes, pred_genotypes, filtered_genotypes, output):
     true_pybed = variants_to_pybed(true_genotypes)
     pred_pybed = variants_to_pybed(pred_genotypes)
 
@@ -103,6 +85,32 @@ def main(genotypes, predicted, filtered, output, type_v="del", verbose=False):
                           (sv[3], "pass", varsize, correct / (wrong + correct), left_prec, right_prec))
             out.write("%s\t%s\t%d\t%3.2f\t%d\t%d\n" %
                       (sv[3], soft, varsize, correct / (wrong + correct), left_prec, right_prec))
+    return pred_with_true
+
+
+def main(genotypes, predicted, filtered, output, type_v="del", verbose=False):
+    true_genotypes = readgenotypes(vcffile=genotypes,
+                                   variants={},
+                                   type_v=type_v)
+    pred_genotypes = {}
+    filtered_genotypes = {}
+    with open(predicted, "r") as preds:
+        for pred in preds:
+            pred = pred.rstrip()
+            if pred != "":
+                readgenotypes(vcffile=pred,
+                              variants=pred_genotypes,
+                              type_v=type_v)
+                if filtered:
+                    readgenotypes(vcffile=pred,
+                                  variants=filtered_genotypes,
+                                  type_v=type_v,
+                                  dofilter=True)
+
+    pred_with_true = build(true_genotypes=true_genotypes,
+                           pred_genotypes=pred_genotypes,
+                           filtered_genotypes=filtered_genotypes,
+                           output=output)
 
     if verbose:
         print("%d variants" % (len(true_genotypes)))
diff --git a/variants_simulator.py b/lib/variants_simulator.py
similarity index 99%
rename from variants_simulator.py
rename to lib/variants_simulator.py
index d05d551e7674ab5706c56f746e86c48d64923535..8d5fc4f93f90c398a00191b9d94c869318211800 100755
--- a/variants_simulator.py
+++ b/lib/variants_simulator.py
@@ -5,7 +5,7 @@ import sys
 import re
 import random
 
-from exceptions import InputException
+from lib.exceptions import InputException
 from Bio import SeqIO
 from joblib import Parallel, delayed
 import multiprocessing