I don't know if I'll ever finish this... I might work more on it later. I was going through all my un-shared works and found this