improve sinal handling