improve toString() method