Signals got moved as there was a cyclical dependency / import on `updates` and `caching`