updated the size type to mirror std::vector