Took a while, but... well done :p