zero-init signals array
use guint for signals array
don't leak memory