Card #122
create the super algo that use one of the implementations
https://trello.com/c/X4Oo2X5b
Merge remote-tracking branch 'origin/master'