many Algorithms implementation