add linked list implementation for storing file offsets, project restructure