Refactor into signals