add toString() for better debug messages