All algorithms written (still not tested)