add one more algorithm