added vector funtionality