updated toString() method