diff --git a/benchmarks/full/options/full_reconstruction.py b/benchmarks/full/options/full_reconstruction.py
index fed2a5aba5604da5143476f19f59c06d964778b5..8f6e88f5ce22dedd64f6b55651e1f5a6d0492c87 100644
--- a/benchmarks/full/options/full_reconstruction.py
+++ b/benchmarks/full/options/full_reconstruction.py
@@ -100,6 +100,9 @@ sim_coll = [
     "DRICHHits"
 ]
 
+# list of algorithms
+algorithms = []
+
 # input and output
 podin = PodioInput("PodioReader", collections=sim_coll)
 podout = PodioOutput("out", filename=output_rec)
@@ -108,12 +111,17 @@ podout = PodioOutput("out", filename=output_rec)
 copier = MCCopier("MCCopier",
         inputCollection="mcparticles",
         outputCollection="mcparticles2")
+algorithms.append( copier )
+
 trkcopier = TrkCopier("TrkCopier",
         inputCollection="TrackerBarrelHits",
         outputCollection="TrackerBarrelHits2")
+algorithms.append( trkcopier )
+
 pmtcopier = PMTCopier("PMTCopier",
         inputCollection="DRICHHits",
         outputCollection="DRICHHits2")
+algorithms.append( pmtcopier )
 
 # Crystal Endcap Ecal
 ce_ecal_daq = dict(
@@ -127,6 +135,7 @@ ce_ecal_digi = CalHitDigi("ce_ecal_digi",
         outputHitCollection="EcalEndcapNHitsDigi",
         energyResolutions=[0., 0.02, 0.],
         **ce_ecal_daq)
+algorithms.append( ce_ecal_digi )
 
 ce_ecal_reco = CalHitReco("ce_ecal_reco",
         inputHitCollection=ce_ecal_digi.outputHitCollection,
@@ -135,6 +144,7 @@ ce_ecal_reco = CalHitReco("ce_ecal_reco",
         readoutClass="EcalEndcapNHits",
         sectorField="sector",
         **ce_ecal_daq)
+algorithms.append( ce_ecal_reco )
 
 ce_ecal_cl = IslandCluster("ce_ecal_cl",
         inputHitCollection=ce_ecal_reco.outputHitCollection,
@@ -144,6 +154,7 @@ ce_ecal_cl = IslandCluster("ce_ecal_cl",
         minClusterCenterEdep=30*units.MeV,
         sectorDist=5.0*units.cm,
         dimScaledLocalDistXY=[1.8, 1.8]) # dimension scaled dist is good for hybrid sectors with different module size
+algorithms.append( ce_ecal_cl )
 
 ce_ecal_clreco = RecoCoG("ce_ecal_clreco",
         inputHitCollection=ce_ecal_cl.inputHitCollection,
@@ -151,6 +162,7 @@ ce_ecal_clreco = RecoCoG("ce_ecal_clreco",
         outputClusterCollection="EcalEndcapNClusters",
         samplingFraction=0.998,      # this accounts for a small fraction of leakage
         logWeightBase=4.6)
+algorithms.append( ce_ecal_clreco )
 
 # Endcap Sampling Ecal
 ci_ecal_daq = dict(
@@ -163,12 +175,14 @@ ci_ecal_digi = CalHitDigi("ci_ecal_digi",
         inputHitCollection="EcalEndcapPHits",
         outputHitCollection="EcalEndcapPHitsDigi",
         **ci_ecal_daq)
+algorithms.append( ci_ecal_digi )
 
 ci_ecal_reco = CalHitReco("ci_ecal_reco",
         inputHitCollection=ci_ecal_digi.outputHitCollection,
         outputHitCollection="EcalEndcapPHitsReco",
         thresholdFactor=5.0,
         **ci_ecal_daq)
+algorithms.append( ci_ecal_reco )
 
 # merge hits in different layer (projection to local x-y plane)
 ci_ecal_merger = CalHitsMerger("ci_ecal_merger",
@@ -177,6 +191,7 @@ ci_ecal_merger = CalHitsMerger("ci_ecal_merger",
         fields=["layer", "slice"],
         fieldRefNumbers=[1, 0],
         readoutClass="EcalEndcapPHits")
+algorithms.append( ci_ecal_merger )
 
 ci_ecal_cl = IslandCluster("ci_ecal_cl",
         inputHitCollection=ci_ecal_merger.outputHitCollection,
@@ -184,6 +199,7 @@ ci_ecal_cl = IslandCluster("ci_ecal_cl",
         splitCluster=False,
         minClusterCenterEdep=10.*units.MeV,
         localDistXY=[10*units.mm, 10*units.mm])
+algorithms.append( ci_ecal_cl )
 
 ci_ecal_clreco = RecoCoG("ci_ecal_clreco",
         inputHitCollection=ci_ecal_cl.inputHitCollection,
@@ -192,6 +208,7 @@ ci_ecal_clreco = RecoCoG("ci_ecal_clreco",
         outputInfoCollection="EcalEndcapPClustersInfo",
         logWeightBase=6.2,
         samplingFraction=ci_ecal_sf)
+algorithms.append( ci_ecal_clreco )
 
 # Central Barrel Ecal (Imaging Cal.)
 cb_ecal_daq = dict(
@@ -205,6 +222,7 @@ cb_ecal_digi = CalHitDigi("cb_ecal_digi",
         outputHitCollection="EcalBarrelHitsDigi",
         energyResolutions=[0., 0.02, 0.],   # 2% flat resolution
         **cb_ecal_daq)
+algorithms.append( cb_ecal_digi )
 
 cb_ecal_reco = ImCalPixelReco("cb_ecal_reco",
         inputHitCollection=cb_ecal_digi.outputHitCollection,
@@ -214,6 +232,7 @@ cb_ecal_reco = ImCalPixelReco("cb_ecal_reco",
         layerField="layer",             # field to get layer id
         sectorField="module",           # field to get sector id
         **cb_ecal_daq)
+algorithms.append( cb_ecal_reco )
 
 cb_ecal_cl = ImagingCluster("cb_ecal_cl",
         inputHitCollection=cb_ecal_reco.outputHitCollection,
@@ -222,6 +241,7 @@ cb_ecal_cl = ImagingCluster("cb_ecal_cl",
         layerDistEtaPhi=[10*units.mrad, 10*units.mrad],     # adjacent layer
         neighbourLayersRange=2,                 # id diff for adjacent layer
         sectorDist=3.*units.cm)                       # different sector
+algorithms.append( cb_ecal_cl )
 
 cb_ecal_clreco = ImagingClusterReco("cb_ecal_clreco",
         samplingFraction=cb_ecal_sf,
@@ -230,6 +250,7 @@ cb_ecal_clreco = ImagingClusterReco("cb_ecal_clreco",
         outputClusterCollection="EcalBarrelClusters",
         outputInfoCollection="EcalBarrelClustersInfo",
         outputLayerCollection="EcalBarrelLayers")
+algorithms.append( cb_ecal_clreco )
 
 # Central ECAL SciFi
 scfi_barrel_daq = dict(
@@ -412,7 +433,7 @@ trk_ec_digi = TrackerDigi("trk_ec_digi",
 
 vtx_b_digi = TrackerDigi("vtx_b_digi",
         inputHitCollection="VertexBarrelHits",
-        outputHitCollection="VertexBarrelRawHits",
+        outputHitCollection="VertetimeResolution=10xBarrelRawHits",
         timeResolution=8)
 
 vtx_ec_digi = TrackerDigi("vtx_ec_digi",
@@ -444,9 +465,8 @@ vtx_ec_reco = TrackerHitReconstruction("vtx_ec_reco",
 
 gem_ec_reco = TrackerHitReconstruction("gem_ec_reco",
         inputHitCollection=gem_ec_digi.outputHitCollection,
-        outputHitCollection="GEMTrackerEndcapRecHits",
-        timeResolution=10)
-TrackingHitsCollector
+        outputHitCollection="GEMTrackerEndcapRecHits")
+
 # Tracking hit collector
 trk_hit_col = TrackingHitsCollector("trk_hit_col",
         inputTrackingHits=[
@@ -547,26 +567,7 @@ podout.outputCommands = [
         ]
 
 ApplicationMgr(
-    TopAlg = [podin, copier, trkcopier,
-              ce_ecal_digi, ce_ecal_reco, ce_ecal_cl, ce_ecal_clreco,
-              ci_ecal_digi, ci_ecal_reco, ci_ecal_merger, ci_ecal_cl, ci_ecal_clreco,
-              cb_ecal_digi, cb_ecal_reco, cb_ecal_cl, cb_ecal_clreco,
-              scfi_barrel_digi, scfi_barrel_reco, scfi_barrel_merger, scfi_barrel_cl, scfi_barrel_clreco,
-              cb_hcal_digi, cb_hcal_reco, cb_hcal_merger, cb_hcal_cl, cb_hcal_clreco,
-              ce_hcal_digi, ce_hcal_reco, ce_hcal_merger, ce_hcal_cl, ce_hcal_clreco,
-              ci_hcal_digi, ci_hcal_reco, ci_hcal_merger, ci_hcal_cl, ci_hcal_clreco,
-              trk_b_digi, trk_ec_digi, vtx_b_digi, vtx_ec_digi,
-              trk_b_reco, trk_ec_reco, vtx_b_reco, vtx_ec_reco,
-              trk_hit_col,
-              sourcelinker, #trk_hits_srclnkr,
-              #clust_trk_init,
-              truth_trk_init, trk_find_alg, parts_from_fit,
-              #vtxcluster_trk_init,
-              #trk_find_alg1, parts_from_fit1,
-              #trk_find_alg2, parts_from_fit2,
-              pmtcopier, pmtdigi, pmtreco, #richcluster,
-              podout
-              ],
+    TopAlg = algorithms,
     EvtSel = 'NONE',
     EvtMax   = n_events,
     ExtSvc = [podioevent,geo_service],