make Vector an interface, add 2 implementations