# File ar-extensions/lib/ar-extensions/import.rb, line 228
    def import_with_validations( column_names, array_of_attributes, options={} )
      failed_instances = []
      
      # create instances for each of our column/value sets
      arr = validations_array_for_column_names_and_attributes( column_names, array_of_attributes )    

      # keep track of the instance and the position it is currently at. if this fails
      # validation we'll use the index to remove it from the array_of_attributes
      arr.each_with_index do |hsh,i|
        instance = new( hsh )
        if not instance.valid?
          array_of_attributes[ i ] = nil
          failed_instances << instance
        end    
      end
      array_of_attributes.compact!
      
      num_inserts = array_of_attributes.empty? ? 0 : import_without_validations_or_callbacks( column_names, array_of_attributes, options )
      OpenStruct.new :failed_instances=>failed_instances, :num_inserts => num_inserts
    end