vector impl2