implement level up mechanics