English part of the algorithm