Scoring Improvements, Code Quality and Perf Tweaks

Lots of work done, still need to implement several methods of scoring.