def add_step(self, step):
        """
        Adds a new step to the waterfall.
        :param step: Step to add
           
        :return: Waterfall dialog for fluent calls to `add_step()`.
        """
        if not step:
            raise TypeError('WaterfallDialog.add_step(): step cannot be None.')

        self._steps.append(step)
        return self