refactored winner function