add various algorithms