Part 3: Imported user experience changes from part 2
Fixed minor typos in branch code
Part 3: added tokenize prototype to utility functions
Fixed code indention and added an accessor method for a disk address
Fixed node linking logic and removed redundant utility.h include
Fixed disk address printing format
Merge changes with Andrew's commits