     
     private func prepareAudio(index: Int)
     {
-        if let songs = songsList {
-            if index >= 0 && index < songs.count {
-                prepareAudio(songs[index], index)
-            }
-        }
+        guard let songs = self.songsList where (index >= 0 && index < songs.count) else {
+            return
+        }
+        prepareAudio(songs[index], index)
     }
     
     private func prepareAudio(song: AudioFile, _ index: Int)
     {
         // Keep alive audio at background
         if song.path == nil {
-            currentSong = nil
+            self.currentSong = nil
             return
         }
         else {
-            currentSong = song
+            self.currentSong = song
             song.index = index
         }
         
         do {
-            audioPlayer = try AVAudioPlayer(contentsOfURL: song.path!)
+            self.audioPlayer = try AVAudioPlayer(contentsOfURL: song.path!)
         }
         catch let error as NSError {
             print("A AVAudioPlayer contentsOfURL error occurred, here are the details:\n \(error)")
         }
-        audioPlayer!.delegate = self
-        audioPlayer!.prepareToPlay()
+        self.audioPlayer!.delegate = self
+        self.audioPlayer!.prepareToPlay()
         
         // ? - Seeking test
         //let time = audioPlayer!.currentTime

    
    public func pauseSong()
    {
        if audioPlayer!.playing {
            audioPlayer!.pause()
        }
    }
    
    public func stopSong()
    {
        if audioPlayer == nil || !audioPlayer!.playing {
            return
        }
        
        audioPlayer!.stop();
        if let event = playerDidStop {
            event()
        }
        if let current = currentSong {
            prepareAudio(current, current.index)
        }
    }
    
    public func playNextSong(stopIfInvalid stopIfInvalid: Bool = false)
    {
        if let songs = songsList {
            if let song = currentSong {
                var index = song.index
                
                // Next song

            return
        }
        // Check the didStart event
        if let event = self.playerDidStart {
            event()
        }
        self.audioPlayer!.play()
    }
    
    public func playSong(index: Int, songsList: [AudioFile])
