@Override
    public boolean equals (Object obj) {
        if (!(obj instanceof TorrentMetaInfo))
            return false;

        TorrentMetaInfo tmi = (TorrentMetaInfo) obj;

        boolean dateEq =
            (creationDate == null && tmi.creationDate == null)
                || (creationDate != null && creationDate.equals(tmi.creationDate));

        return (dateEq) && (announce.equals(tmi.announce)) && (announceList.equals(tmi.announceList))
            && (comment.equals(tmi.comment)) && (createdBy.equals(tmi.createdBy)) && (info.equals(tmi.info));
    }