updated .equals and .toString