Changed API methods to be block based for better success and failure handling