Revert "Revert "Voting Algo implementation""

This reverts commit 36a161d3bef3e238433ae84194f00aa6b82b510e.
Revert "Revert "Revert "Revert "Revert d4c0b4d..f8ffc57""""

This reverts commit 3e1e609f94bfa83a1f33ced64b2cd1f4b8ce63f7.