add 'extending algorithm' part