add algorithms