remove caching redundancy (and get much faster in the process)
shuffle functions into quasi-logical places
consistent naming of intermediate variables
fix up cache blunder silliness
don't store the compressed sitance matrices
mergey