fixed toString bug