Add an external Vault dependency
Make events cancellable
Add economical listeners
Refactor the dependency loading

Warning! This WILL NOT currently work if compiled.