Split different Algorithms into separate classes