split up hmm.cpp into smaller files
don't need to include cross-specific header files in cross.h

 - include all of them in cross.cpp, and then each in its respective
   .cpp file