added load(file), make public data/spec accessors
do not call fclose on NULL
added spec/data ctor, added save() method