       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()


# A store able to synchronize with a remote crypted store. This store has an extra method in order to order a push or pull
# operations
# @event pulled Emitted once the store is pulled from the remote API
class ledger.storage.SyncedStore extends ledger.storage.Store

  PULL_INTERVAL_DELAY: ledger.config.syncRestClient.pullIntervalDelay || 10000
  PULL_THROTTLE_DELAY: ledger.config.syncRestClient.pullThrottleDelay || 1000
