[5.0] Use Contract For Event Dispatcher