```coffeescript
Darkswarm.service "Geo", ->
  new class Geo
    OK: google.maps.GeocoderStatus.OK

    # Usage:
    # Geo.geocode address, (results, status) ->
    #   if status == Geo.OK
    #     console.log results[0].geometry.location
    #   else
    #     console.log "Error: #{status}"
    geocode: (address, callback) ->
      geocoder = new google.maps.Geocoder()
      geocoder.geocode {'address': address}, callback

    distanceBetween: (locatable, location) ->
      latLng = new google.maps.LatLng locatable.latitude, locatable.longitude
      google.maps.geometry.spherical.computeDistanceBetween latLng, location
```

Make Geo.distanceBetween take either a LatLng or a locatable at either parameter
user
```coffeescript
Darkswarm.service "Geo", ->
  new class Geo
    OK: google.maps.GeocoderStatus.OK

    # Usage:
    # Geo.geocode address, (results, status) ->
    #   if status == Geo.OK
    #     console.log results[0].geometry.location
    #   else
    #     console.log "Error: #{status}"
    geocode: (address, callback) ->
      geocoder = new google.maps.Geocoder()
      geocoder.geocode {'address': address}, callback

    distanceBetween: (src, dst) ->
      google.maps.geometry.spherical.computeDistanceBetween @toLatLng(src), @toLatLng(dst)

    # Wrap an object in a google.maps.LatLng if it has not been already
    toLatLng: (locatable) ->
      if locatable.lat?
        locatable
      else
        new google.maps.LatLng locatable.latitude, locatable.longitude```
assistant