try to get the push loop in a self.retry(). still needs work