better algorithm description