I haven't actually started on it yet, but what I'll be doing is this: 1. Create a SpellDescriptionFile, similar to a PluginDescriptionFile. This allows me to collect the correct path in order to load the correct file. Although I'm not sure what exactly I'll be 2. Since you've already created an abstract spell class, and a spellmanager, I'll hook into those. 3. Create a SpellLoader, which uses the main, reflection, and some file loading to create a new instance of said spell. Depending on how exactly spells are working currently, a new instance may not be necessary(due to them currently being cast via a static method). 4. Anything else I forgot to mention here. I'll put it all in a new package, and modify NOTHING outside of said package, that way it doesn't conflict with any other edits. I'm also considering re-writing the command structure, as currently, it's pretty sad. The possibilities allowed by commands are minimal.