   @method unobserve
   @return {object}    A object observe state.
   ###
-  unobserve: ->
-    Object.unobserve @fields, @observer
+  unobserve: -> Object.unobserve @fields, @observer
 
+  ###
+  Destroy current Hamsa instance
+  @method destroy
+  @return {object}    Current Hamsa instance
+  ###
+  destroy: -> delete @constructor.records[@uid]
 
 # -- PRIVATE -------------------------------------------------------------------
 _guid = ->

  constructor: (attributes = {}, handler, events = DEFAULT_EVENTS) ->
    @constructor.className = @constructor.name
    @constructor.records[@uid = _guid()] = @
    for key, value of attributes
      if typeof @[key] is 'function'
        @[key](value)
      else
        @[key] = value
    @observe handler, events if handler?
    @


  @method fields
  @param  {string}    Unknown arguments, each argument is the name of field.
  ###
  @define: (@fields = {}) ->
    @records = {}
    @names = (field for field of @fields)
    @

  ###
