Refactored ExternalEvent->ExternalCause #34