It was a little bit hard to understand what the `fireAction` was doing... maybe add a comment before the whole block explaining what the `fireAction` and `stopAction` does? (that way another developer will spend less time)

PS: good thing about the Array#forEach + objects is that it's less verbose but it becomes harder to `skip` and `only` and also make it a little bit harder to follow what is going on DRY can be bad for readability :D