Initial algorithm implementation
Continuing the algorithm implementation
Finished the algorithm implementation