     ViewModel.binds.default(p)
 
 ViewModel.addBind 'file', (p) ->
-  p.element.bind 'change', (e) ->
+  p.element.bind 'changed', (e) ->
     file = if e.target.files?.length then e.target.files[0] else null
     setProperty(p.vm, p.property,  file)
 
 ViewModel.addBind 'files', (p) ->
-  p.element.bind 'change', (e) ->
+  p.element.bind 'changed', (e) ->
     prop = getProperty(p.vm, p.property)
     prop.clear()
     prop.push(f) for f in e.target.files

        p.element.prop 'checked', val if p.element.is(':checked') isnt val
      else
        p.element.prop 'checked', val is p.element.val() if p.element.is(':checked') isnt  (val is p.element.val())
  p.element.bind 'change', ->
    val = getProperty(p.vm, p.property)
    if VmHelper.isArray val
      if p.element.is(':checked')

        $(this).attr "selected", this.value in newValue
    else if p.element.val() isnt newValue
      p.element.val newValue
    p.element.trigger 'changed'

    return if c.firstRun
    if isInput and not VmHelper.delayed[delayName + "X"]
