diff --git a/src/utilities/lloid_gui b/src/utilities/lloid_gui
index 413a08b45e23d5d0239b375a2a3ae496ba21af52..62035779df0eddac478c27d38d014f5c7656d767 100755
--- a/src/utilities/lloid_gui
+++ b/src/utilities/lloid_gui
@@ -46,18 +46,18 @@ import gst
 
 
 def fakesrc(pipeline, wave, vol=1e-20):
-        src = gst.element_factory_make("audiotestsrc")
-        src.set_property("timestamp-offset", 874106958000000000)
-        src.set_property("samplesperbuffer", 16384)
-        src.set_property("num-buffers", 1)
-        src.set_property("wave", wave)
-        src.set_property("volume", vol)
-        pipeline.add(src)
-        filter = gst.element_factory_make("capsfilter")
-        #filter.set_property("caps", gst.Caps("audio/x-raw-float, width=64, rate=16384, instrument=L1, channel_name=LSC-STRAIN, units=strain"))
-        pipeline.add(filter)
-        src.link(filter)
-        return filter
+	src = gst.element_factory_make("audiotestsrc")
+	src.set_property("timestamp-offset", 874106958000000000)
+	src.set_property("samplesperbuffer", 16384)
+	src.set_property("num-buffers", 1)
+	src.set_property("wave", wave)
+	src.set_property("volume", vol)
+	pipeline.add(src)
+	filter = gst.element_factory_make("capsfilter")
+	#filter.set_property("caps", gst.Caps("audio/x-raw-float, width=64, rate=16384, instrument=L1, channel_name=LSC-STRAIN, units=strain"))
+	pipeline.add(filter)
+	src.link(filter)
+	return filter
 
 
 def playback(pipeline):
@@ -79,29 +79,22 @@ def playback(pipeline):
 	return adder
 
 class Bank(object):
-	def __init__(self, rate, start, end, length, blocksize=None):
-		self.filt_length = [length]
-		self.rate = [rate]
-		self.start = [start]
-		self.end = [end]
-		if blocksize: self.blocksize = [blocksize]
-		else: self.blocksize = [rate]
-   
-	def add_bank(self, rate, start, end, blocksize = None):
-		self.filt_length.append(self.filt_length[0])
-		self.rate.append(rate)
-		self.start.append(start)
-		self.end.append(end)
-		if blocksize: self.blocksize.append(blocksize)
-		else: self.blocksize.append(rate)
+	def __init__(self, rate, start, end, length, blocksize = None):
+		self.filt_length = length
+		self.rate = rate
+		self.start = start
+		self.end = end
+		if blocksize is not None:
+			self.blocksize = blocksize
+		else:
+			self.blocksize = rate
 
+class Banks(list):
 	def get_rates(self):
-		l = list(set(self.rate))
-		l.sort(reverse=True)
-		return tuple(l)
+		return tuple(sorted(set(bank.rate for bank in self), reverse = True))
 
-        def base_rate(self):
-                return max(self.get_rates())    
+	def base_rate(self):
+		return max(self.get_rates())    
 
 class DetectorData(object):
 	def __init__(self, start, end, block_size = 16384 * 16 * 8):
@@ -308,7 +301,7 @@ class LLOID(object):
 
 	def whitened_hoft_tees(self, src):
 		self.hoft_tee={}
-		base_rate = self.banks.get_rates()[0]
+		base_rate = self.banks.base_rate()
 		for det in self.detectors.channel.keys():
 			self.hoft_tee[det] = {}
 			qin, qout = self.resample_to_rate(base_rate)
@@ -477,18 +470,18 @@ class LLOID(object):
 	                self.matrixtee[det] = []
         	        self.chifacstee[det] = []
                 	self.sumofsquarestee[det] = []
-			for i in range(len(self.banks.rate)):
+			for i in range(len(self.banks)):
                         	queue = gst.element_factory_make("queue")
                         	self.pipeline.add(queue)
-                        	queue.set_property("max-size-time", int(self.banks.end[i])*10000000000 + 1000000000)
-                        	src[det][self.banks.rate[i]].link(queue)
+                        	queue.set_property("max-size-time", int(self.banks[i].end)*10000000000 + 1000000000)
+                        	src[det][self.banks[i].rate].link(queue)
 				self.svd_filter[det].append(gst.element_factory_make("lal_templatebank"))
 		                self.pipeline.add(self.svd_filter[det][i])
 				queue.link_pads("src", self.svd_filter[det][i], "sink")
-		                self.svd_filter[det][i].set_property("t-start", self.banks.start[i])
-                		self.svd_filter[det][i].set_property("t-end", self.banks.end[i])
-		                self.svd_filter[det][i].set_property("t-total-duration", self.banks.filt_length[i])
-                		self.svd_filter[det][i].set_property("snr-length", self.banks.blocksize[i])
+		                self.svd_filter[det][i].set_property("t-start", self.banks[i].start)
+                		self.svd_filter[det][i].set_property("t-end", self.banks[i].end)
+		                self.svd_filter[det][i].set_property("t-total-duration", self.banks[i].filt_length)
+                		self.svd_filter[det][i].set_property("snr-length", self.banks[i].blocksize)
 				self.svd_filter[det][i].set_property("template-bank", self.detectors.template_bank_file_name[det])
 				self.svd_filter[det][i].set_property("reference-psd", self.detectors.psd[det])
 				self.orthosnrtee[det].append(self.tee())
@@ -525,10 +518,12 @@ class GTK_Main:
 		self.button.connect("clicked", self.start_stop)
 		vbox.add(self.button)
 		window.show_all()
-		banks = Bank(2048, 0.0, 1.0, 29.0)
-		banks.add_bank(512, 1.0, 5.0)
-		banks.add_bank(256, 5.0, 13.0)
-		banks.add_bank(128, 13.0, 29.0)
+		banks = Banks([
+			Bank(2048, 0.0, 1.0, 29.0),
+			Bank(512, 1.0, 5.0, 29.0),
+			Bank(256, 5.0, 13.0, 29.0),
+			Bank(128, 13.0, 29.0, 29.0)
+		])
 		detectors= DetectorData(874106958000000000,874107558000000000)
 		detectors.add_detector("L1", "/home/channa/scratch/frames/S5/strain-L2/LLO/L-L1_RDS_C03_L2-8741/L.cache", "LSC-STRAIN", "/home/channa/cvs/lsware/gstlal/examples/reference_psd.txt", "/home/channa/cvs/lsware/gstlal/examples/H1-TMPLTBANK_09_1.207-874000000-2048.xml")
 		self.pipeline = gst.Pipeline("lloid")