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])
@config.merge!(reader)
@config.merge!(proxy)
@config["baseParams"] = {} if @config["baseParams"].nil?
@config["baseParams"].update("fieldset" => @fieldset)
@config["format"] = @format
@id = @config["storeId"] = @model.to_s.downcase unless @config["storeId"]
end