Rebased difficulty refactoring upon v1.5 and optimized some calculations

Giving this another shot... let me know if you're headed another direction. Thanks!