further expand the algorithm section