Make a bit more efficient
Add `once` function

For listeners that should get executed at most once