diff --git a/src/inputs-ext/address/address.js b/src/inputs-ext/address/address.js
index fa62147..22b7902 100644
--- a/src/inputs-ext/address/address.js
+++ b/src/inputs-ext/address/address.js
@@ -26,14 +26,24 @@ $(function(){
         this.init('address', options, Address.defaults);
     };
 
+    //inherit from Abstract input
     $.fn.editableutils.inherit(Address, $.fn.editabletypes.abstract);
 
     $.extend(Address.prototype, {
-         render: function() {
-             Address.superclass.render.call(this);
-         },
+        /**
+        Renders input from tpl
+
+        @method render() 
+        **/        
+        render: function() {
+            Address.superclass.render.call(this);
+        },
         
-        //standard way to show value in element. Used only if display option not defined.
+        /**
+        Default method to show value in element. Can be overwritten by display option.
+        
+        @method value2html(value, element) 
+        **/
         value2html: function(value, element) {
             if(!value) {
                 $(element).empty();
@@ -43,12 +53,17 @@ $(function(){
             $(element).html(html); 
         },
         
+        /**
+        Gets value from element's html
+        
+        @method html2value(html) 
+        **/        
         html2value: function(html) {        
           /*
             you may write parsing method to get value by element's html
             e.g. "Moscow, st. Lenina, bld. 15" => {city: "Moscow", street: "Lenina", building: "15"}
-            but for complex structures I do not recommend do that. 
-            Better always set value directly via javascript, e.g. 
+            but for complex structures it's not recommended.
+            Better set value directly via javascript, e.g. 
             editable({
                 value: {
                     city: "Moscow", 
@@ -60,10 +75,12 @@ $(function(){
           return null;  
         },
       
-       /*
-        converts value to string. 
+       /**
+        Converts value to string. 
         It is used in internal comparing (not for sending to server).
-       */
+        
+        @method value2str(value)  
+       **/
        value2str: function(value) {
            var str = '';
            if(value) {
@@ -75,19 +92,35 @@ $(function(){
        }, 
        
        /*
-        this is mainly for parsing value defined in data-value attribute. 
-        If you will always set value by javascript, no need to overwrite it
+        Converts string to value. Used for reading value from 'data-value' attribute.
+        
+        @method str2value(str)  
        */
        str2value: function(str) {
+           /*
+           this is mainly for parsing value defined in data-value attribute. 
+           If you will always set value by javascript, no need to overwrite it
+           */
            return str;
        },                
        
+       /**
+        Sets value of input.
+        
+        @method value2input(value) 
+        @param {mixed} value
+       **/         
        value2input: function(value) {
            this.$input.find('input[name="city"]').val(value.city);
            this.$input.find('input[name="street"]').val(value.street);
            this.$input.find('input[name="building"]').val(value.building);
        },       
        
+       /**
+        Returns value of input.
+        
+        @method input2value() 
+       **/          
        input2value: function() { 
            return {
               city: this.$input.find('input[name="city"]').val(), 
@@ -95,11 +128,28 @@ $(function(){
               building: this.$input.find('input[name="building"]').val()
            };
        },        
+       
+        /**
+        Activates input: sets focus on the first field.
         
+        @method activate() 
+       **/        
        activate: function() {
-            //set focus on city
             this.$input.find('input[name="city"]').focus();
-       }  
+       },  
+       
+       /**
+        Attaches handler to submit form in case of 'showbuttons=false' mode
+        
+        @method autosubmit() 
+       **/       
+       autosubmit: function() {
+           this.$input.find('input[type="text"]').keydown(function (e) {
+                if (e.which === 13) {
+                    $(this).closest('form').submit();
+                }
+           });
+       }       
     });
 
     Address.defaults = $.extend({}, $.fn.editabletypes.abstract.defaults, {
diff --git a/src/inputs/abstract.js b/src/inputs/abstract.js
index 40fcb0c..03fa7f8 100644
--- a/src/inputs/abstract.js
+++ b/src/inputs/abstract.js
@@ -26,7 +26,7 @@ To create your own input you should inherit from this class.
        },
        
        /**
-        Renders input. Can return jQuery deferred object.
+        Renders input from tpl. Can return jQuery deferred object.
         
         @method render() 
        **/