Once has a bug that if you want more than one listener wanting to be called exactly once, we'll have a problem. If that's the case, we should remove this and off(event, listener) methods.