multiple variants of algorithms