algorithm description added