using Hawick algorithm by Louis Dyonne@github