use calloc for instantiation