   updateBackgroundSounds: (PlayerPosition) =>
     @backgroundSoundsToPlay = []
     # TODO: not really elegant
-    for sound in mediator.levels[mediator.activeLevel].soundMap[Math.floor(PlayerPosition.x/32)][Math.floor(PlayerPosition.y/32)]
+    for sound in mediator.getActiveLevel().soundMap[Math.floor(PlayerPosition.x/32)][Math.floor(PlayerPosition.y/32)]
       # sound.type is the name of the sound here
-      @fade sound.type, mediator.levels[mediator.activeLevel].backgroundSounds, sound.intensity/100
-      @backgroundSoundsToPlay.push(sound.type)
+      @fade sound.type+'.mp3', mediator.getActiveLevel().backgroundSoundList, sound.intensity/100
+      @backgroundSoundsToPlay.push(sound.type+'.mp3')
 
-    for name, sound of mediator.levels[mediator.activeLevel].backgroundSounds
+    for name, sound of mediator.getActiveLevel().backgroundSoundList
       if @backgroundSoundsToPlay.indexOf(name) == -1
-        @fade name, mediator.levels[mediator.activeLevel].backgroundSounds, 0
+        @fade name, mediator.getActiveLevel().backgroundSoundList, 0
 
   ###
   @param [String]

  Start loading of level. The level to load is determined by the String LEVEL
  @note later change listener based to observer based event system
  ###
  load: (LEVEL) =>
    # @initializeSoundMap(LEVEL, mediator.levels[LEVEL].gMap)
    # mapSounds = mediator.levels[LEVEL].sounds
    # mediator.levels[LEVEL].soundCount =  mapSounds.sounds.length + mapSounds.backgroundSounds.length
    # mediator.levels[LEVEL].soundLoadCount = 0
    @loadSounds LEVEL, mapSounds

  # ###
  # @param [String]
  # @param [map]
  # Reads levelX.json file and to all sounds of the level
  # ###
  # initializeSoundMap: (LEVEL, map) =>
  #   currMapData = map.get 'currMapData'
  #   mediator.levels[LEVEL].soundMap = []
  #   for x in [0..map.numXTiles - 1]
  #     mediator.levels[LEVEL].soundMap[x] = for y in [0..map.numYTiles - 1]
  #       []

  #   for layer in currMapData.layers
  #     continue if layer.name isnt 'sound'

  #     for tileID, tileIndex in layer.data
  #       continue if tileID is 0

  #       x = (tileIndex % map.numXTiles)
  #       y = Math.floor(tileIndex / map.numXTiles)

  #       mediator.levels[LEVEL].soundMap[x][y].push(layer.properties)


  getSoundMap: (map) =>
    soundMap = []
    for x in [0..map.width - 1]

      for name, sound of mediator.levels[mediator.activeLevel].soundList
        @stop name, mediator.levels[mediator.activeLevel].soundList

      for name, sound of mediator.levels[mediator.activeLevel].backgroundSoundList
        @stop name, mediator.levels[mediator.activeLevel].backgroundSoundList

      @stop mediator.activeLevel+'theme.mp3', mediator.levels[mediator.activeLevel].themeSound

    catch e
      console.log e.toString()
