So far, most of the calls run sequentially. It is necessary to:
- make local methods calls parallel so that when an event happens all the methods registered to that event can be called at the same time.
- the remote method invocations must be triggered in parallel to the local callbacks.