Refactored Invoke