Created by: Gingeropolous
Some of the stuff still needs work, but I'm trying to update my fork with others work ... and I couldn't do it without making a pull request. internets.