Lots of algorithms

stuff