moving signal handlers to model