 
       self = this
       parentData = Template.parentData(1)
+      initValue = null
 
       self.valid = new Blaze.ReactiveVar(true)
       self.changed = new Blaze.ReactiveVar(false)

        # If initial data was provided--
        # Initial validation passing back that value shouldn't trigger `changed`.
        if self.data.data
          unless self.data.data[field] && _.isEqual(self.data.data[field], value)
            setChanged()
            
            # Update field in `changedValues`.
            changedValues[field] = value

        # If no initial data was provided, trigger `changed` because it's a new value.
        else

    # Store validated element values as local data (can't submit invalid data anyway)

    validatedValues = {} # (non-reactive)

    # Track which fields have changed when initial data is present (Issue #11)
    changedValues = {}

    self.setValidatedValue = (field, value) ->

      # First, opt into setting `changed` if this is a unique update.
      if _.has(validatedValues, field) && !_.isEqual(value, validatedValues[field])
        validatedValues[field] = value

        # If the value was present in initial data, set it as `changed`.
        if self.data.data && _.has(self.data.data, field)
          changedValues[field] = value

        setChanged()

      # If the field doesn't exist in validatedValues yet, add it.
