add immutable vector implementation