Enchantments

Note: It's my first time doing something with C++
xoft wants five spaces between functions, and we are obliged to appease him :P