some work on file upload