added vector stuffs