updated toString