Added the ability to generate random matrices and then "repair" them.  This gives way better diversity up front.