/**
  * @param Race $race
  * @param GenderCode $genderCode
  * @param Tables $tables
  * @param ExceptionalityProperties $exceptionalityProperties
  * @param ProfessionLevels $professionLevels
  * @return Size
  * @throws Exceptions\TooLowStrengthAdjustment
  */
 private function createFirstLevelSize(Race $race, GenderCode $genderCode, Tables $tables, ExceptionalityProperties $exceptionalityProperties, ProfessionLevels $professionLevels)
 {
     // the race bonus is NOT count for adjustment, doesn't count to size change respectively
     $sizeModifierByStrength = $this->getSizeModifierByStrength($exceptionalityProperties->getStrength()->getValue() + $professionLevels->getFirstLevelStrengthModifier());
     $raceSize = $race->getSize($genderCode, $tables);
     return Size::getIt($raceSize + $sizeModifierByStrength);
 }
 private function getFirstLevelPhysicalPropertiesSum(ProfessionLevels $professionLevels)
 {
     return $professionLevels->getFirstLevelStrengthModifier() + $professionLevels->getFirstLevelAgilityModifier();
 }