updates to data structures and file reading