First commit of toString; uses StringBuilder to avoid String
concatenation ineffeciency.