implement vector