       marker.addListener 'click', ->
         mark.moveTo(self)
 
+      marker.addListener 'mouseover', ->
+        $('#infoOverlay img').attr 'src', self.data.img
+        $('#infoOverlay #description').text self.data.description
+        $('#infoOverlay #position').text 'Distance away ' + parseInt(distanceTravelled(mark.position, self.position)) + 'km'
+        $('#infoOverlay #value').text 'Potential Revenue $' + self.value
+        $('#infoOverlay #travelExpense').text 'Travel Expense $' + parseInt(distanceTravelled(mark.position, self.position)*0.8)
+        @value = self.value
+        @travelExpense = parseInt(distanceTravelled(mark.position, self.position)*0.6)
+
   class player extends location
-    constructor: (@position, @name, @icon) ->
-      super(@position, @name, @icon)
+    constructor: (@position, @name, @data, @icon, @stats) ->
+      super(@position, @name, @data, @icon)
       @playerMarker
 
     initTo: (map) ->

    init: () ->

  class location
    constructor: (@position, @name, @icon) ->
      @marker

    addTo: (map) ->
      if @icon

        position: @position,
        map: map,
        icon: @icon,
        title: @name,
        optimized: false,
        zIndex: 100
      })
    
    moveTo: (location) ->
      console.log("current position", this.position, "new position", location.position, "distance travelled", distanceTravelled(this.position, location.position) + 'km')
      @position = location.position
      @playerMarker.setPosition(new google.maps.LatLng(location.position.lat, location.position.lng))
      updateMarkers()

    updateStats: (stats) ->
      @stats = stats
      $('#infoOverlay #stats #workingCapital').text 'Working Capital $' + @stats.workingCapital
      $('#infoOverlay #stats #capital').text 'Capital $' + @stats.capital
      $('#infoOverlay #stats #assets').text 'Assets $' + @stats.assets
      $('#infoOverlay #stats #liabilities').text 'Liabilities $' + @stats.liabilities

  retrieveResources = (amount) ->
    reqParam = {
