More Refactoring + Weighting algorithm

Basic algorithm has been completed. Requires alterations to be made to
the existing database to include availability factors and such.