non c99
use signal handler
cleanup Makefile