isIterable = subject isnt window and checkIf.isIterable(subject) and not subject.nodeType
sampleItem = if isIterable then subject[0] else subject

if not sampleItem
	throwError('emptyList') if isIterable and checkIf.isElCollection(subject)

else if @isDom = checkIf.isDom(sampleItem)

	if @property is 'checked'
		isDomRadio = sampleItem and checkIf.isDomRadio(sampleItem)
		isDomCheckbox = not isDomRadio and sampleItem and checkIf.isDomCheckbox(sampleItem)
	
	else if @property is 'value'
		@isDomInput = checkIf.isDomInput(sampleItem)
	

	if isIterable and not targetIncludes(@descriptor, 'multi')
		if subject.length is 1
			subject = subject[0]

		else
			if (isDomRadio or isDomCheckbox) and not checkIf.domElsAreSame(subject)
				return throwWarning('mixedElList',3)			
			else
				if isDomRadio or isDomCheckbox
					@isMultiChoice = true
					subject = [].slice.call(subject)
				else
					subject = subject[0]
					throwWarning('onlyOneDOMElement',3)




