add other algorithm