There are a couple of hacky bits, here and there, and it probably still has some bugs, but hey, it's a start!