Add Algorithms and Tests