 
 
 paws.Label = Label = class Label extends Thing
-   constructor: (string) ->
-      it = construct this
-      it.alien = new String string
-      it.alien.native = this
-      return it
+   constructor: constructify(return:@) (@alien) ->
+      @alien = new String @alien
+      @alien.native = this
    
    clone: (to) ->
       to ?= new Label

      if _.isArray(it)
         return it.map (el) => @from el
   
   # TODO: `construct()` (or `constructify()`) this
   constructor: (@to, @isResponsible = false) ->
   
   clone: -> new Relation @to, @isResponsible
   

# Core data-types
# ---------------
paws.Thing = Thing = parameterizable class Thing
   constructor: constructify(return:@) (elements...) ->
      @id = uuid.v4()
      @metadata = new Array
      @push elements... if elements.length
      
      @metadata.unshift undefined if @_?.noughtify != no
   
   # Creates a copy of the `Thing` it is called on. Alternatively, can be given an extant `Thing`
   # copy this `Thing` *to*, over-writing that `Thing`'s metadata. In the process, the
