This took a lot longer than I intended but it’s finished now!...