Took me a while to read through it all but very well done.