Adding some initial support for a  more "fair" algorithm.

o Needs a better approach to scoring (better results).
o Needs to be more efficient with memory and CPU time.