use C99 initializers instead of memset