refactor basicgradingstrategy with switch