Don't mutate `arguments`
Refactor signals
Move task creation and registration to `task/factory`
JSDoc updates
Remove constant