add __toString