I've been working on this for a few weeks and I'm just now putting it on Github.