Took a while, but this is it