Fairly happy with this solve. Smaller is certainly possible, I don't want to make that though.