 
 
   request: (opts, callback, errback) =>
-    @rateLimitter.throttle().then => 
+    if @rateLimitter
+      @rateLimitter.throttle().then => 
+        @_sendRequest(opts, callback, errback)
+    else
       @_sendRequest(opts, callback, errback)
     
   _sendRequest: (opts, callback, errback) =>

MarketingProps = ['campaign', 'source', 'medium', 'term', 'content']
TopLevelProps = ['hull_ship_id'].concat(StructuredEventProps)

DEFAULT_RATE_LIMIT_CONFIG = {
  capacity: 25,
  interval: 60000
}

Identity = (o)-> o

class HullTrackService extends GenericService

    super(config, gateway)

    @_request = @wrappedRequest
    
    if (config.trackRateLimit && config.trackRateLimit.capacity) 
      @rateLimitter = new LeakyBucket(config.trackRateLimit)
    else
      @rateLimitter = false

    RemoteUserStore.addChangeListener (change)=>
      currentUser = RemoteUserStore.getState().user
