add algorithm
modify the conflict of closure