Yeah, that's the way I'd do it. I'm actually using a very similar system for a game I'm running, so I've put a bit of thought into it. Spellcasters in that game are all different, though, so I haven't written up classes for all the different styles, which seems to be something you'd need to do...