switched to signal catching model