This is a bunch of classes and methods useful for Matrix reduction (still in progress)