still working to bring the code up to date. file upload in particular