use kill() instead of raise()