add vector implementation