Messy, but it works!

Gonna clean it up in a bit.