         idIndex: 'number'
         initialFieldIndex: 'number'
         pageSize: 'number'
+        autoRetrieve: ['bool', true, true]
 
     derived:
         results:

            @idIndex = @fields.length
            @fields.add(id: idName)
        @clauses = new Clauses([], query: this )
        this.listenTo(@clauses, 'change remove reset', ->
            @results.reset()
            this.trigger('change', arguments...)
        )
        if @initialFieldIndex
            @initialField = this.fields.at(@initialFieldIndex)

        this.addNewClause()
        this

    isValid: ->
        ! @clauses.findWhere( isValid: false )

