[@Kalas] I don't know if this is still WIP or not but if you're done, accepted.