add three algorithms