Split Algo's into multiple files.

And class for each algo type for easy editing