 		throttle [100] - int - milliseconds to throttle
 		debounce [100] - int - milliseconds to debounce
 	###
-	on: (event, callback, options) =>
-		options = _.merge {}, @defaults, options
+	on: (event, callback, options = {}) =>
+		options = defaults options, @defaults
 		@set event, callback, options
 
 	###

	event - string - event name ('resize', 'scroll', etc)
	###
	set: (event, callback, options) =>
		key = options.throttle+'-'+options.debounce

		# If the event type hasn't been added, create an object to store the
		# callbacks and a record of which throttle.debounce listeners have been

	mediator.on 'resize', myCallback
	mediator.off 'scroll', mycallback
###

# Deps
defaults = require 'lodash/defaults'
forEachRight = require 'lodash/forEachRight'
throttle = require 'lodash/throttle'
debounce = require 'lodash/debounce'
remove = require 'lodash/remove'

# Class definition
class WindowEventMediator

	# Stores a record on all event listener types, subscribed callbacks, and
