the algorithm. It is not done yet