 
       for event in deferredChangeEvents
         @emitter.emit 'did-change', event
-        @emit 'changed', event
+        @emit 'changed', event if Grim.includeDeprecatedAPIs
+
+if Grim.includeDeprecatedAPIs
+  EmitterMixin = require('emissary').Emitter
+  EmitterMixin.includeInto(Marker)
+
+  Marker::on = (eventName) ->
+    switch eventName
+      when 'changed'
+        Grim.deprecate("Use Marker::onDidChange instead")
+      when 'destroyed'
+        Grim.deprecate("Use Marker::onDidDestroy instead")
+      else
+        Grim.deprecate("Marker::on is deprecated. Use event subscription methods instead.")
+
+    EmitterMixin::on.apply(this, arguments)
+
+  Marker::matchesAttributes = (args...) ->
+    @matchesParams(args...)
+
+  Marker::getAttributes = ->
+    Grim.deprecate("Use Marker::getProperties instead.")
+    @getProperties()
+
+  Marker::setAttributes = (args...) ->
+    Grim.deprecate("Use Marker::setProperties instead.")
+    @setProperties(args...)

  getInvalidationStrategy: ->
    @invalidate

  # Deprecated: Use ::getProperties instead
  getAttributes: ->
    Grim.deprecate("Use Marker::getProperties instead.")
    @getProperties()

  # Deprecated: Use ::setProperties instead
  setAttributes: (args...) ->
    Grim.deprecate("Use Marker::setProperties instead.")
    @setProperties(args...)

  # Public: Returns an {Object} containing any custom properties associated with
  # the marker.
  getProperties: ->

    @manager.removeMarker(@id)
    @manager.intervals.remove(@id)
    @emitter.emit 'did-destroy'
    @emit 'destroyed' if Grim.includeDeprecatedAPIs

  extractParams: (params) ->
    params = @constructor.extractParams(params)
