a change in node definition should not break existing cornucopia files
fix logic bug
big refactor of low-level read/write, hopefully i didn't screw something up