public static IZuneTagContainer GetContainer(string path)
        {
            if (!File.Exists(path))
                throw new FileNotFoundException(String.Format("File does not exist: {0}",path), path);

            string extension = Path.GetExtension(path);

            if (extension.ToLower() == ".mp3")
            {
                try
                {
                    var tagManager = new Id3TagManager();

                    //TODO: app crashes here when a file is loaded from a remote directory, i.e. on network
                    FileState status = tagManager.GetTagsStatus(path);

                    //if we just have id3v1.1 tags
                    if (status.Id3V1TagFound && !status.Id3V2TagFound)
                        throw new Id3TagException("cannot read id3v1.1");

                    return new ZuneMP3TagContainer(tagManager.ReadV2Tag(path),path);
                }
                catch (Id3TagException ex)
                {
                    if (ex.InnerException != null)
                        throw new AudioFileReadException(ex.InnerException.Message, ex.InnerException);

                    throw new AudioFileReadException(ex.Message);
                }
            }

            if (extension.ToLower() == ".wma")
            {
                try
                {
                    return new ZuneWMATagContainer(ASFTagManager.ReadTag(path),path);
                }
                catch (Exception ex)
                {
                    throw new AudioFileReadException(ex.Message,ex);
                }
            }

            throw new AudioFileReadException("The " + Path.GetExtension(path) +
                " file extension is not supported with zune social tagger.");
        }