Updated algorithm description and introduction