def composed_description(self):
        # build a wad of text to use as public facing description

        show = self.show
        client = show.client

        footer = "Produced by NDV: https://youtube.com/channel/UCQ7dFBzZGlBvtU2hCecsBBg?sub_confirmation=1"

        # (show tags seperate the talk from the event text)
        descriptions = [self.authors,
                self.public_url,
                self.conf_url,
                self.description,
                show.tags,
                show.description, client.description,
                footer,
                client.tags,
                "{} at {}".format(
                    self.start.strftime("%c"),
                    self.location.name),
                ]

        # remove blanks
        descriptions = [d for d in descriptions if d]
        # combine wiht CRs between each item
        description = "\n\n".join(descriptions)
        # remove extra blank lines
        description = re.sub( r'\n{2,}', r'\n\n', description)
        # description = "<br/>\n".join(description.split('\n'))

        return description