I have a new system for leveling up. Again, you're going to have to keep track of this.
If your pokemon beats a wild pokemon it's worth .5 level.
If he beats a trainer pokemon it gains 1 level.
So technically, Torchic is still Lvl 5 but if he beats another zigzagoon or whatever, he levels up to 6.
Do you think that a pokemon should know all the moves it can learn in that form and it evolves when you think it's most appropriate? So it will learn it's new moves when it levels up?