added file upload, still needs validation and some progress feedback