small refactoring for app launcher; added basic file upload