Restructure to non blocking calls