     id: 'address-form'
     tagName: 'article'
 
+    ui:
+      balance: '.address-balance'
+      currencyType: '.currency-type'
+      inputAddress: '.address-public-address'
+      inputName: '.address-name'
+      hiddenAddress: '.hidden-public-address'
+      hiddenAddressFirstbits: '.hidden-public-firstbits'
+      btnQrScan: '.scan-qr'
+      btnSave: '.btn-save'
+      btnCancel: '.btn-cancel'
+
     events:
-      'keydown .address-public-address': '_handleKeyupInput'
-      'paste .address-public-address': '_handlePasteInput'
-      'cut .address-public-address': '_handleCutInput'
-      'click .btn-save': '_handleSave'
-      'click .btn-cancel': '_handleCancel'
+      'keydown @ui.inputAddress': '_handleKeyupInput'
+      'paste @ui.inputAddress': '_handlePasteInput'
+      'cut @ui.inputAddress': '_handleCutInput'
+      'click @ui.btnSave': '_handleSave'
+      'click @ui.btnCancel': '_handleCancel'
 
     initialize: ->
       @listenTo App.vent, 'scan:qr', @_handleScanQr
-
-    onShow: ->
-      @balance = @$('.address-balance')
-      @currencyType = @$('.currency-type')
-      @inputAddress = @$('.address-public-address')
-      @inputName = @$('.address-name')
-      @hiddenAddress = @$('.hidden-public-address')
-      @hiddenAddressFirstbits = @$('.hidden-public-firstbits')
-      @btnQrScan = @$('.scan-qr')
-      @btnSave = @$('.btn-save')
-      @btnCancel = @$('.btn-cancel')
 
     _handleKeyupInput:
       _.debounce (event) ->

    _handlePasteInput: (event) ->
      # Timeout so that the paste event completes and the input has data.
      $.doTimeout 50, =>
        inputVal = @inputAddress.val()
        @_clearErrors()
        @_clearCurrencyImage()


                  isSelectAllKey(event) or
                  isArrowKey(event)

        inputVal = @ui.inputAddress.val()
        @_clearErrors()

        if inputVal.length is 0
