add better to string and fix tostring bug