Magic system is now context-based (this would make much more sense if the logic was thrown in the instance *class, but it should be OK for now).