add the algorithm description. Not finished.