also notes in here
how the algorithm ___