finished toString