need to call reserve to prvent a crash in push_back