begin refactoring for roles instead of using seperate calculators