why allocate a new String instance?

    def apply(name: String): Node = hash(name)

    def fromHash(hash: String): Node = hash