Refactored listen, ignore, trigger, and emit to be constructed on each instantiation
Refactored insert validation to its own function