         _isComplete = false;
         _lastPosition = 0;
         _sound = new Sound();
-        _sound.addEventListener(Event.ID3, handleId3); // TODO
+        _sound.addEventListener(Event.ID3, handleId3);
         _sound.addEventListener(IOErrorEvent.IO_ERROR, handleError);
-        _sound.addEventListener(Event.COMPLETE, handleSoundComplete);
+        _sound.addEventListener(Event.COMPLETE, handleLoadingComplete);
         _sound.load(new URLRequest(url), new SoundLoaderContext(1000, true));
         play();
     }

    protected function play0 () :void
    {
        pause0();
        _chan = _sound.play(_lastPosition * 1000, _loop ? int.MAX_VALUE : 0,
            new SoundTransform(_volume));
        if (_chan == null) {
            Log.getLog(this).warning("All sound channels are in use; " +
                "unable to play sound.");
        }

        }
    }

    protected function handlePositionCheck (event :TimerEvent = null) :void
    {
        if (!_isComplete) {
            dispatchEvent(new ValueEvent(MediaPlayerCodes.DURATION, getDuration()));
