    # 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