use vector to save the order