be a little more defensive on data initialization