Completed toString2