     catch error
       throw GE.makeExecutionError("Error executing the output pin expression '#{expressionFunction}' --> '#{dest}' for emitter chip: #{error.stack}", path)
 
-    [parent, key] = GE.getParentAndKey(evaluationContext, dest.split("."))
+    [parent, key] = GE.getParentAndKey(evaluationContext, GE.splitAddress(dest))
     parent[key] = outputValue
 
     memoryPatches = GE.concatenate(memoryPatches, GE.makePatches(constants.memoryData, evaluationContext.memory, path))

      memory: GE.cloneData(constants.memoryData)
      io: GE.cloneData(constants.ioData)

    [parent, key] = GE.getParentAndKey(inputContext, chip.splitter.from.split("."))
    boundValue = parent[key]

    for key of boundValue

  setupBindings: (bindings) ->
    for bindingName, bindingValue of bindings
      if bindingValue instanceof GE.BindingReference
        [parent, key] = GE.getParentAndKey(@, GE.splitAddress(bindingValue.ref))
        @bindings[bindingName] = parent[key]
      else
        @bindings[bindingName] = bindingValue
