It’s horribly coded, but works