changed the way we created the identity matrix.
use default dtype instead.
implemented an edge case for __str__().
equality operators can throw a TypeError.