       values[key] = _(changes).last().value if _(changes).last().type is OperationTypes.SET
       handledKeys.push key
     keys = _(keys).without(handledKeys...)
-    super keys, (storeValues) ->
+    @_secureStore.get keys, (storeValues) ->
       cb?(_.extend(storeValues, values))
 
   keys: (cb) ->
-    super (keys) =>
+    @_secureStore.keys (keys) =>
       for key, keyChanges of _(@_changes).groupBy('key')
         if _(keyChanges).last().type is OperationTypes.REMOVE
           keys = _(keys).without(key)

    _.defer => cb?()

  clear: (cb) ->
    super(cb)
    @_clearChanges()
    @client.delete_settings()


  # @param [Function] syncPullHandler A function used to perform pull synchronization operations
  # @param [ledger.storage.Store] auxiliaryStore A store used to save ledger.storage.SyncedStored meta data
  constructor: (name, addr, key, auxiliaryStore = ledger.storage.wallet) ->
    super(name)
    @_secureStore = new ledger.storage.SecureStore(name, key)
    @mergeStrategy = @_overwriteStrategy
    @client = ledger.api.SyncRestClient.instance(addr)
    @throttled_pull = _.throttle _.bind((-> @._pull()),@), @PULL_THROTTLE_DELAY
