retry implemented and appears to be working