Okay, so its been a while since I've updated this post. Up til now, not a lot has happened on the development front because I've been getting back into the swing of school. However, today, I hit paydirt, I found the exact kind of class I was looking to use: a generic Graph class! I've returned the Aspect class to its old ways, associating aspects by string instead of by object since the latter would increase the file size of the scripts exponentially with respect to said aspect's tier and the only thing the two programs (Script Writer and Pathfinder) really have in common is that class, the rest are specific to each program's function. However, I've hit another barrier: I have absolutely no idea how to path thru the graph. I know the algorithm I wish to use, Dijkstra's algorithm, but I'm having trouble wrapping my head around how, exactly, it applies in this situation. This is literally the first time I've worked with pathfinding, so I've got no idea what's really going on, but I am absolutely loving the challenge this is presenting. I've also made the Graph class serializable, and this is how I plan to do the caching: I won't cache individual paths, I'll simply cache the whole graph at once, since that will likely be the more time-consuming task, as I've read that Dijkstra's algorithm is quite efficient in terms of both CPU cycles and memory usage.