First draft. Ugly enough.
Much better solution.