added a vector implementation