Add delay and once

`delay` takes a time in ms and a signal and executes events from the signal after a delay of ms

`once` takes a signal and executes the first event from that signal and then stops
I don't understand why this is needed.