OKAY. So. Look up X-Macros, because I've replaced the enum ElementType with them (or more accurately used them to construct it). It uses elementtypes.h now, which must be included from element.h...what's the real use, you ask? None, but I read about them and decided to try them out.