use calloc to initialize to 0