As we're fixing this, we may as well go the whole hog and just turn demo.formBasedImageReorderer into a proper grade