changes required for improved toString