refactor competitions system