added tostring override