added retry pattern for futures