consolidated changes

Consolidated changes into one commit 
Instead of using the Futures.addCallback, please change it to the try/catch approach