Canonicalization

For reviewing this code
I think this will work if you just do numpy.zeros((n,n))