works if affine=False