refactored Vector