Refactored casting of spells to take in arbitrary parms