https://algorithm.data61.csiro.au/wp-content/uploads/2018/08/cropped-Algorithm.png