add toString func