non-multi, enhanced algorithm added