clean up
add new hmm impls