Add weighted critical path implementation and slight refactoring
Extend tests to newly implemented methods
Method signature refactoring side-effects