converted detailString() into toString()