>inb4 tl:dr
well worth the read