# File lib/needle/service-point.rb, line 54
    def initialize( container, name, opts={}, &callback )
      @name = name
      @container = container
      @callback = callback
      @pipeline = Needle::Pipeline::Collection.new self
      @chain = nil

      @chain_mutex = QueryableMutex.new
      @element_mutex = QueryableMutex.new

      if opts[:pipeline]
        elements = opts[:pipeline]
      else
        model = opts[:model] || :singleton
        elements = @container[:service_models][model]
      end

      elements.concat [ *opts[:include] ] if opts[:include]
      elements.each { |element| @pipeline.add element, opts }
    end