Created originally on Bitbucket by refi64 (Ryan Gonzalez)
Was already merged in Bitbucket before import, marked as merged by the import user
Sorry it took so long; I've been really busy. Anyway, I tried to conform to the style I saw as much as possible. If something isn't right, please point it out.