refactored ability score generation