diff --git a/aosstower/l00/parser.py b/aosstower/l00/parser.py
index c90d41ed1c6bd76a3cc75e9c81cf030d2d0dd99c..4b58d83551f6e7725705a35a25e3b9949a0ef134 100644
--- a/aosstower/l00/parser.py
+++ b/aosstower/l00/parser.py
@@ -60,13 +60,14 @@ def _make_frame(data):
     frame = Frame()
     for key, value in data:
         if key == 'stamp':
-            frame[key] = value
-        elif key in database:
-            frame[key] = database[key].type(value)
-        else:
-            frame[key] = value
-
-    return frame
+            continue
+        if key in database:
+            try:
+                data[key] = database[key].type(data[key])
+            except (ValueError, TypeError) as err:
+                raise LineParseError("error converting '%s' using %s",
+                                     data[key], database[key].type)
+    return data
 
 
 class ParserV0(object):
diff --git a/scripts/make_database.py b/scripts/make_database.py
index 51269da00efe1e990ba8b8c051c471d5d7656e7b..4b34d09a31a6ac2eef4553bf1c2d1fb3d8eba360 100755
--- a/scripts/make_database.py
+++ b/scripts/make_database.py
@@ -5,8 +5,8 @@ import logging
 from datetime import datetime
 
 from metobscommon.model import RrdModel, ModelError
-from aosstower.record import Record, LineParseError
-from aosstower.model import initialize_rrd, VARS
+from aosstower.l00.parser import read_records 
+from aosstower.l00.rrd import initialize_rrd
 
 LOG = logging
 
@@ -41,6 +41,7 @@ if __name__ == '__main__':
         LOG.info("Enter time ordered data files, one per line, ^D when done")
         args.files = sys.stdin
 
+
     for each in args.files.readlines():
         fpath = each.strip()
         if not os.path.exists(fpath):
@@ -48,17 +49,9 @@ if __name__ == '__main__':
             continue
 
         LOG.info("adding %s", fpath)
-        for line in open(fpath).readlines():
-            if not line.strip():
-                continue
-            try:
-                record = Record.create(line)
-            except LineParseError as err:
-                LOG.error(str(err))
-                continue
-
+        for record in read_records(fpath):
             try:
                 rrd.add_record(record['stamp'], record)
-            except ModelError:
-                LOG.exception("Could not insert: %s", record)
+            except ModelError as err:
+                LOG.error("Insert failed: %s", err)