 Bandango.ModelBackedView = Ember.View.extend
+  # defaults
   raw_errors: {}
   errors: {}
+  tagName: "form"
+  attributes: []
+  bindAttributesTo: "model"
 
-  tagName: "form"
+  init: ->
+    @_super()
+    @defineComputedPropertiesForAttributes()
 
   errors_messages: (->
     messages = []

    @setProperties
      errors: errors
      raw_errors: the_errors

    if not @get("model") or @get("model").get("isNew") then "Crear" else "Actualizar"
  ).property("model")

  getFormData: ->
    @getProperties @get("attributes")

  defineComputedPropertiesForAttributes: ->
    if bindTo = @get("bindAttributesTo")
      for attribute in @get("attributes")
        Ember.defineProperty @, attribute, (->
          @get(bindTo).get(arguments[0])
        ).property()
    null

  emptyErrors: ->
    @setProperties
      errors: {}
      raw_errors: {}
    null

  setErrors: (the_errors) ->
    errors = {}
