string.h required for memset on some platforms