   #
   # Fetches IP object(s) for port(s)
   get: (args...) ->
+    @activate()
     args = ['in'] unless args.length
-    if (@nodeInstance.ordered or @nodeInstance.autoOrdering) and
-    @nodeInstance.activateOnInput and
-    not ('__resolved' of @result)
-      @activate()
-    res = (@ports[port].get @scope for port in args)
+    res = []
+    for port in args
+      ip = @ports[port].get @scope
+      res.push ip
+
     if args.length is 1 then res[0] else res
 
   # Fetches `data` property of IP object(s) for given port(s)

class ProcessOutput
  constructor: (@ports, @ip, @nodeInstance, @result) ->
    @scope = @ip.scope

  # Sets component state to `activated`
  activate: ->
    @result.__resolved = false
    if @nodeInstance.ordered or @nodeInstance.autoOrdering
      @nodeInstance.outputQ.push @result

  # Checks if a value is an Error
  isError: (err) ->

  # Finishes process activation gracefully
  done: (error) ->
    @error error if error

    debug "#{@nodeInstance.nodeId} finished processing #{@nodeInstance.load}"
    @nodeInstance.load--

    if @nodeInstance.isOrdered()
      @result.__resolved = true
      @nodeInstance.processOutputQueue()
