difficulty selection now dynamic and DRY