finished toString method