- clock is needed because timestamps need to be provided now - explicit types are good anyway - have at least one helper to emit the signal with optional tracer/logger/metrics_emitter - easier logger with `log` and `logf`