Made modifications to magic methods (including returning NotImplemented)
Rebuilt the __str__ method to return the data weighting and names.