Refactored to support multi calls