configurable spell factory