diff --git a/build.py b/build.py
index 2913dff9560c2913706c14ebc2bc62fea012b0cd..948aa9e504e13adee84eab35ac44d7550392c997 100644
--- a/build.py
+++ b/build.py
@@ -6,7 +6,7 @@ import os.path
 
 if __name__ == '__main__':
 
-    for lab_name in ['lab1', 'lab2', 'lab3', 'lab4', 'lab5', 'lab6']:
+    for lab_name in ('lab'+str(x) for x in xrange(7, start=1)):
         dist_lp = 'dist/' + lab_name + '/'
         src_md = 'src/' + lab_name + '.md'
 
@@ -18,25 +18,27 @@ if __name__ == '__main__':
             header_bin = fh.read()
             footer_bin = ff.read()
 
-        # Lab1
+        # Make directories
         try:
             os.makedirs(dist_lp)
         except OSError:
             pass
 
-        with open(src_md, 'rb') as labin:
-            if os.path.exists('src/'+lab_name+'.json'):
-                with open('src/' + lab_name + '.json', 'rb') as datin:
-                    data = json.load(datin)
-            else:
-                data = [{}]
+        # Load data
+        if os.path.exists('src/'+lab_name+'.json'):
+            with open('src/' + lab_name + '.json', 'rb') as datin:
+                data = json.load(datin)
+        else:
+            data = [{}]
 
+        # Load text
+        with open(src_md, 'rb') as labin:
             lab = labin.read().decode('utf8')
 
+        # Swap placholders
         for ex_no, d in enumerate(data, start=1):
             plab = lab
             d['lp'] = unicode(ex_no)
-            print('Processing %s-%s' % (lab_name, ex_no, ))
 
             for k, v in d.iteritems():
                 plab = plab.replace(u'$%s$' % (k, ), v)
@@ -46,5 +48,5 @@ if __name__ == '__main__':
                 labout.write(plab.encode('utf8'))
                 labout.write(footer_bin)
 
-            os.system(('pandoc %s%s.md -s -o %s%s.pdf') % (dist_lp, ex_no, dist_lp, ex_no))
-            os.unlink(dist_lp+'%s.md' % (ex_no, ))
+            if os.system(('pandoc %s%s.md -s -o %s%s.pdf') % (dist_lp, ex_no, dist_lp, ex_no)) != 0:
+                sys.exit(1)