重构competition ui