+###*
+  MVC module
+  @module mvc
+###
+
 Model = require 'theoricus/mvc/model'
 Factory = null
 
+###*
+  @class View
+###
 module.exports = class View
 
   # @property page title
+  ###*
+    Sets the title of the document.
+
+    @property title {String}
+  ###
   title: null
 
-  # $ reference to dom element
+  ###*
+    The template's html as jQuery object.
+
+    @property el {Object}
+  ###
   el: null
 
   # @property [String] class path
+  ###*
+   File's path relative to the app's folder.
+
+   @property classpath {String}
+  ###
   classpath : null
 
   # @property [String] class name
+  ###*
+    Stores class name
+
+    @property classname {String}
+  ###
   classname : null
 
-  # @property [String] namespace
+  ###*
+    Namespace is the class folder path relative to the views folder.
+
+    @property namespace {String}
+  ###
   namespace : null
   
-  # @property [theoricus.core.Process] process
+  ###*
+    {{#crossLink "Process"}}{{/crossLink}} responsible for running the controller's action that rendered this view.
+
+    @property process {Process}
+  ###
   process   : null
 
-  ###
-  @param [theoricus.Theoricus] @the   Shortcut for app's instance
+  ###*
+    Responsible for binding the DOM events on the view. Use the format `selector event: handler` to define an event.
+
+    @property events {Object}
+    @example
+        events:  
+            ".bt-alert click":"on_alert"
+
+  ###
+  events    : null
+
+  ###*
+    Responsible for storing the template's data and the URL params.
+    
+    @property data {Object}
+  ###
+  data      : null
+
+  ###*
+    This function is executed by the Factory. It saves a `@the.factory` reference inside the view.
+
+    @method _boot
+    @param @the {Theoricus} Shortcut for app's instance
   ###
   _boot:( @the )->
     Factory = @the.factory
     @
 
-  ###
-  @param [Object] @data   Data to be passed to the template
-  @param [Object] @el     Element where the view will be "attached/appended"
+  ###*
+    Responsible for rendering the view, passing the data to the `template`.
+
+    @method _render
+    @param data {Object} Data object to be passed to the template, usually it is and instance of the {{#crossLink "Model"}}{{/crossLink}}
+    @param [template=null] {String} The path of the template to be rendered.
   ###
   _render:( data = {}, template )=>
     @data = 


    @render_template template

  render_template:( template )->
    @the.factory.template template, ( template ) =>


      @el.css "opacity", 0
      @el.animate {opacity: 1}, 300, => @after_in?()

  ###*
    If there is an`@after_in` method implemented, it will be called after the view finish it's intro animations.

    Will only be executed if the {{#crossLink "Config"}}{{/crossLink}} property `disable_transitions` is `false`.

    @method after_in    
  ###

  ###
  Triggers view "animation out", "after_out" must be called in the end
   @param [Function] after_out Callback function to be triggered in the end
