new step by step vectorized algo