Creating new approach to Viterbi.  Refaactoring and heavily commented