TDDing new functionality to support adding properties of things
refactored viterbi support functions to all use new Hash class