refactored events using templated queues.
added exceptions for when resolving/resjecting more than once.