full vectorized