The Attemp to reimplement Tournaments lib into more useful lib.
Reimplementaion of lib for more general use.
Merge branch 'reimpl' into develop