A bunch of changes to do with new algorithms
and updates to various other parts.