       @bind(
         'refresh change'
         =>
-          for key, callbackSingle of @SUBSCRIPTION_COLLECTION
-            callbackSingle()
+          for key, callback of @SUBSCRIPTION_COLLECTION
+            callback()
       )
 
       # trigger deleteAll() and fetch() on network notify

        events
        =>
          @deleteAll()
#          callbacks = =>
#            for key, callbackSingle of @SUBSCRIPTION_COLLECTION
#              callbackSingle()
#          @one 'refresh', (collection) =>
#            callbacks(collection)
          @fetch()

        'Collection::Subscribe::' + @className
      )


    key = @className + '-' + Math.floor( Math.random() * 99999 )
    @SUBSCRIPTION_COLLECTION[key] = callback

      if callback
        callback( data )
      return data

    if force
      console.log 'debug', 'find forced to load!', @className, id
    else
      console.log 'debug', 'find not loaded, load now!', @className, id
    if callback

      # store callback and requested id
      if !@RETRIEVE_CALLBACK
        @RETRIEVE_CALLBACK = {}
      if !@RETRIEVE_CALLBACK[id]
        @RETRIEVE_CALLBACK[id] = {}
      key = @className + '-' + Math.floor( Math.random() * 99999 )
      @RETRIEVE_CALLBACK[id][key] = callback

      # bind refresh event
      if !@RETRIEVE_BIND
        @RETRIEVE_BIND = true

        # check if bind for requested id exists
        App[ @className ].bind 'refresh', (records) ->
          for record in records
            if @RETRIEVE_CALLBACK[ record.id ]
              for key, callback of @RETRIEVE_CALLBACK[ record.id ]
                data = App[ @className ].find( record.id )
                callback( data )
                delete @RETRIEVE_CALLBACK[ record.id ][ key ]
              if _.isEmpty @RETRIEVE_CALLBACK[ record.id ]
                delete @RETRIEVE_CALLBACK[ record.id ]

      # fetch object
      console.log 'debug', 'loading..' + @className +  '..', id
      App[ @className ].fetch( id: id )
      return true
    return false

  @subscribe: (callback, param = {}) ->
    if !@SUBSCRIPTION_COLLECTION
