report is done with signal callbacks as a separate widget