do ()->
	OPTS_NOUPDATE = updateOnBind:false
	currentID = 0
	arrayMutatorMethods = ['push','pop','shift','unshift','splice','reverse','sort']
	dummyPropertyDescriptor = {}
	boundInstances = {}
	placeholder = ['{{', '}}']
	settings = Object.create
		silent:					false
		trackArrayChildren:		false
	,
		placeholder:
			get: ()-> placeholder
			set: (newPlaceholder)-> if checkIf.isArray(newPlaceholder) and newPlaceholder.length is 2
				placeholder = newPlaceholder
				setPholderRegEx()
				return
	

	defaultOptions = 
		simpleSelector:			false
		promiseTransforms:		false
		dispatchEvents:			false
		updateEvenIfSame:		false
		updateOnBind:			true

	import misc/helpers.coffee
	import misc/errorsAndWarnings.coffee
	import SimplyBind/
	import Binding/
	import BindingInterface/
	import GroupBinding/
	import [browserOnly] export/window.coffee
	import [nodeOnly] export/module.coffee