There's a few minor changes that could be made for clarity (I second the recommendation to change "gains caster(1)" to "gains caster(+1)") but it is overall a clean and simply concept that works well.