todo: Use signals.