Now, my ideas are never going to happen, but this is what I would implement into the game if I could, particularly gyms. I will do Pokéstop ones and battling (which will be different) in other blogs.
When you first start, and reach level 5, you are asked to choose out of Mystic, Instinct and Valor. That remains. But before you can contribute to the team, you must beat a computer-generated team that protects the gym. It's represented as grey. There will be six members in this party, like always, and the CP will go up as you battle it. 150, 160, 170, 180, 190, 200. They are not type-based. After you defeat the gym, you receive the badge, which is going to be extremely uncreative, and you can finally see which team owns the gym. If it's your team, you can put in a Pokémon, but not if there are already six protecting the gym. Anyway, this adds a new goal in the game, trying to collect badges from gyms all over the place.
Say we have a gym called "The Lighthouse on the Rock". When you first encounter it, it's grey, and has a 200 cp Pokémon mascot that is randomly generated, but stays the same for all new players. Maybe it's a Machoke. Anyway, once you go into it, you battle a 150 cp Squirtle, a 160 cp Magmar, a 170 cp Weepinbell, a 180 cp Onix, a 190 cp Beedrill, and finally the 200 cp Machoke. Once you win, you get the Lighthouse on the Rock Badge, which is added to your collection. Then, the grey goes away and you see the gym is yellow (I'm mystic, just using instinct as an example). There are five Pokémon guarding the gym. If you're Instinct, you add your own Pokémon. If you're Mystic or Valor, you can challenge the gym, getting rid of the Pokémon one by one as you beat it.
Now, I'm going to make a blog about Pokécash, which will explain a lot of stuff, but I'm leaving that for now.