make sure last record is parsed, rename all the things, some better error checking and test cases