# File lib/extjs/data/store.rb, line 8
    def initialize(*params)
      options = params.extract_options!
      
      @config     = options[:config] || {}
      @format     = options[:format] || 'json'
      @fieldset   = options[:fieldset] || :default
      @schema     = options[:schema]
      @proxy      = options[:proxy] || 'http'
      @writer     = options[:writer]
      @type       = (options[:type].nil?) ? @proxy === 'direct' ? 'Ext.data.DirectStore' : "Ext.data.#{@format.capitalize}Store" : options[:type] 
      
      @controller = self.class.get_controller(options[:controller])
      @model      = self.class.get_model(options[:controller], options[:model])

      # Merge Reader/Proxy config
      @config.merge!(reader)
      @config.merge!(proxy)
      
      @config["baseParams"] = {} if @config["baseParams"].nil?
      @config["baseParams"].update("fieldset" => @fieldset)
      
      @config["format"] = @format

      # Set storeId implicitly based upon Model name if not set explicitly
      @id = @config["storeId"] = @model.to_s.downcase unless @config["storeId"]
    end