restructured image uploader