I think we should split this file uploader into another file.