Converting the transports to event emitters, and adding in profiling, addressing Issue #1