beginning to spread into multiple files, looking at more sophisticated data structures