basic file I/O, incomplete tree implementations